• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Bear Bibeault
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Liutauras Vilda
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • fred rosenberger
  • salvin francis
Bartenders:
  • Piet Souris
  • Frits Walraven
  • Carey Brown

Moderately Big Projects: How-To

 
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?
     
    Marshal
    Posts: 69847
    278
    • 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.
     
    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
     
    Sheriff
    Posts: 7108
    184
    Eclipse IDE Postgres Database VI Editor Chrome Java Ubuntu
    • 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.
     
    Bartender
    Posts: 10777
    71
    Hibernate Eclipse IDE 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
     
    With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
      Bookmark Topic Watch Topic
    • New Topic