• Post Reply Bookmark Topic Watch Topic
  • New Topic

Moderately Big Projects: How-To  RSS feed

 
Mike Matthews
Ranch Hand
Posts: 49
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey Ranchers,

I won't be boring you with my life story. My knowledge about Java might be above beginner's level, but I know nothing when it comes to actual programming. I believe there were already questions like this one before, for which I apologise. Even I actually asked once about this so-called "next step". Then again, this topic is a little more personalised.

Where to begin a project? How?

I heard it's not good practice to:
  • start with creating UI,
  • make each step of development too big,
  • include any crucial code in the class with the main() method (or start() method in case of JavaFX apps, which are more in my interest.)

  • Maybe now is the time to read a book like "Effective Programming" by Joshua Bloch or "Head First! Design Patterns"? Or maybe there is a place where I can learn from sample applications?
     
    Campbell Ritchie
    Marshal
    Posts: 56545
    172
    • Likes 2
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    All those three things are correct.
    Another book to suggest: Code Complete by ??Steve McConnell??.

    You need a specification and a plan. You will probably take longer planning the app than coding it.
     
    Steffe Wilson
    Ranch Hand
    Posts: 165
    12
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Mike Matthews wrote:Where to begin a project? How?

    Not sure if you mean how to organise and manage a bigger project or how to design a bigger application, but to some extent the two are related anyway.

    From the process/management side, I'd suggest you follow some kind of iterative approach where you develop your application feature by feature. So break your concept down into manageable sub-features and plan out a sensible sequence of making those features whereby each iteration can build on the last.

    From the design side its still about breaking things down into manageable chunks, and a lot of that comes from experience. But if you are careful about how your classes are designed and you follow the recommended principles about loose coupling etc then it will make things easier later should you need to adjust the way your classes relate to each other.

    P.S. The management side of developing larger scale applications is actually a massive topic in computing, if you want to dip a toe in just for background info, then here's a useful link:
    https://en.wikipedia.org/wiki/List_of_software_development_philosophies
     
    Knute Snortum
    Sheriff
    Posts: 4279
    127
    Chrome Eclipse IDE Java Postgres Database VI Editor
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    From the process/management side, I'd suggest you follow some kind of iterative approach where you develop your application feature by feature. So break your concept down into manageable sub-features and plan out a sensible sequence of making those features whereby each iteration can build on the last.

    Expanding on that, I would also make the program "work" at some level at each iteration, whether that's creating unit tests or even a small main() method or some SOPs.
     
    Winston Gutkowski
    Bartender
    Posts: 10575
    66
    Eclipse IDE Hibernate Ubuntu
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Mike Matthews wrote:Where to begin a project? How?

    I hate to say, but the first step is to define it.

    What is it called? What does it do? Who is going to use it...where and when...and (maybe most importantly) why?

    And many of the next steps have nothing to do with Java either; they have to with working out the components that are likely to be needed to make it work.

    Patterns are really only of use once you have all of the above pretty solidly worked out, and are starting to make the transition from "what" to "how" - and code is the absolute last thing you do.

    However, I would definitely agree that reading Joshua Bloch's book is a great idea. But don't expect it to tell you what to do; it tells you why to do it a particular way once you already know a few alternatives.

    HIH

    Winston
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!