Development Question

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • blyxx86
    Contributor
    • Nov 2006
    • 258

    Development Question

    Good Evening Everyone,

    I am fairly new to application development. Usually I just modify small portions or create specific functions.

    However, my current task is to create an entire application / service / inventory system for use at my company. They understand this is a big task for just one person and they have given me a lot of freedom and spare time to go for it.

    I am wondering what type of time line a project like this would usually take.

    So far I am on month three. The first month was mostly database development (I am upwards of 50+ tables), the second month was generic web development, and now this last month I have been building on their specific needs (create a form where we can do X, Y, Z).

    I know it is difficult to say how long it will take without knowing the specifics of the project, but I guess my real question is what type of time frame do you usually consider as realistic for a large application?
  • Markus
    Recognized Expert Expert
    • Jun 2007
    • 6092

    #2
    You should really have the front-end of the website done in no time. What I mean by the front end is your forms, your html/css layouts, the javascript, etc. The back-end (the form processing, data creation, etc) is what will really eat into your time. But, yes, you're right; I couldn't hazard a guess as to how long this may take one person - it generally depends on your skills, tools and commitment.

    Speaking of skills, are you completely hand-coding this yourself?

    Comment

    • blyxx86
      Contributor
      • Nov 2006
      • 258

      #3
      Every bit of it is "hand coded" if that includes tools like MySQL Workbench that help you create the tables and everything simply.

      The front end is really simple. However, what I have noticed, like you said, the things that eat away my time isn't creating the first form, it's then turning it into a "Delete / Update / Insert" form. This is my first experience with PHP, but it is such a simple language.

      If you have any suggestions as to development tools for PHP / MySQL I would be very interested. I just picked up an "Everything Book" from Visibone.com that has an incredible amount of useful information in only 32 pages. I mean ALL the standard PHP functions, HTML, MySQL, Javascript.. But that will only help in the times I can't remember the format of certain commands.

      I just wish they wouldn't have started using it for mission critical data 2 months ago. It makes every single SQL update I do to the tables scary to implement, but they keep changing their minds on what they need from the application.

      Did I mention this is my first dive into entire system development?

      Comment

      • Markus
        Recognized Expert Expert
        • Jun 2007
        • 6092

        #4
        That's a big task for someone who has never learned PHP..

        I would suggest using frameworks and programming patterns, but they may be a bit too advanced for you.

        Just post here with problems as they arise, and we'll do our best to help you.

        Comment

        • blyxx86
          Contributor
          • Nov 2006
          • 258

          #5
          Would you care to divulge what a framework is?

          Perhaps some samples of programming patterns?

          PHP is simple.. I have a number of features already setup. Since so much of the system is dynamic from the MySQL database, the pages are quite simple, since SQL is more of my background.

          I created numerous functions to help speed along the development of each page, like creating drop downs, or error reporting, data cleansing, etc.

          Any suggested readings?

          Comment

          • blyxx86
            Contributor
            • Nov 2006
            • 258

            #6
            So in reading up on the frameworks (I've seen them before, and did some research into them, but did not realize they were frameworks) like Zend, CakePHP, etc.. I don't see the benefit of them?

            Maybe I just need some enlightenment.

            Comment

            • Markus
              Recognized Expert Expert
              • Jun 2007
              • 6092

              #7
              Why use a framework.

              A design pattern that most frameworks use is the MVC or Model View Controller pattern. The idea is that you seperate your code; your business from your presentation, etc. This is something you should learn early on: keep as much PHP out of your HTML as possible.

              Comment

              • blyxx86
                Contributor
                • Nov 2006
                • 258

                #8
                Very interesting stuff.

                I will take a look at codeigniter again.

                Those two links really helped to explain the concepts behind MVC and Frameworks.

                I suppose I used a pseudo version of the MVC for each of my pages, where depending on a POST variable a certain function would happen. However, creating another layer of abstraction would remove the individual php files and just create a few php files and controllers.

                I have to look into it some more, but thank you for the head start.

                So, out of curiosity.. How long do most larger projects take for a single person to complete? (Not including just being introduced to MVC / Frameworks)

                Comment

                • Markus
                  Recognized Expert Expert
                  • Jun 2007
                  • 6092

                  #9
                  Originally posted by blyxx86
                  Very interesting stuff.

                  I will take a look at codeigniter again.

                  Those two links really helped to explain the concepts behind MVC and Frameworks.

                  I suppose I used a pseudo version of the MVC for each of my pages, where depending on a POST variable a certain function would happen. However, creating another layer of abstraction would remove the individual php files and just create a few php files and controllers.
                  CodeIgniter is my chosen framework; the documentation for it is insanely good and the community is huuuge.

                  Originally posted by blyxx86
                  I have to look into it some more, but thank you for the head start.
                  No problem, friend.

                  Originally posted by blyxx86
                  So, out of curiosity.. How long do most larger projects take for a single person to complete? (Not including just being introduced to MVC / Frameworks)
                  Well, in my short time developing, I've never had the ... pleasure ... of creating a large application. I'm currently developing a clan website for a friend and I'm already into my second week with barely anything done. It's really a question of how efficient you are, and no one can judge that as well as yourself can.

                  Comment

                  • blyxx86
                    Contributor
                    • Nov 2006
                    • 258

                    #10
                    I was hoping you wouldn't say it depends on me because I have a tendency to get sidetracked by so many other projects that this one might get too... boring?

                    However, due to the large scale nature of the application in question, I am finding that when I don't want to work on one thing I can work on another. It provides variety in the monotony, if that is possible.

                    I watched the CodeIgniter sample tutorials. He makes it seem too simple. Pass these variables, echo them out. I have a tendency of wanting to know why] something works. Like why is the line "extends Constructor" (or something like that). Or more importantly, why would you create a function within the class with the exact same name?

                    I will toy with the MVC and CodeIgniter after I get the system to a point where it is safe to tinker for a while.

                    Comment

                    • Markus
                      Recognized Expert Expert
                      • Jun 2007
                      • 6092

                      #11
                      Well I can answer a couple of those questions.

                      Class ... Extends controller

                      This is what is called inheritance in OOP (object orientated programming). It basically allows the class to access it's parent's properties and methods.

                      Function named same as the class

                      This is the more recent style of a 'constructor'. You used to, and still can, call constructors by __constructor() , but you can now just call with with the same name as the class.

                      Simple :)

                      Inheritance: http://www.webreference.com/programm...class_inherit/

                      Class constructor: http://uk3.php.net/language.oop.constructor
                      Last edited by Markus; Feb 11 '09, 01:53 AM. Reason: Added some references.

                      Comment

                      • Atli
                        Recognized Expert Expert
                        • Nov 2006
                        • 5062

                        #12
                        Originally posted by Markus
                        Function named same as the class

                        This is the more recent style of a 'constructor'. You used to, and still can, call constructors by __constructor() , but you can now just call with with the same name as the class.
                        Actually, you have that backwards.
                        PHP4 used the "same-name-as-the-class" function as a constructor.
                        PHP5 introduced the __construct() function, and it is the preferred method of creating a constructor today.

                        It does, however, still allow the old PHP4 method if you prefer it.

                        Comment

                        • Atli
                          Recognized Expert Expert
                          • Nov 2006
                          • 5062

                          #13
                          Originally posted by blyxx86
                          So, out of curiosity.. How long do most larger projects take for a single person to complete? (Not including just being introduced to MVC / Frameworks)
                          "Larger" is a very relative term. Extremely hard for us to judge with so little info.

                          But the "minor" details always seem to have a way of taking much much longer than you plan, especially with the client changing the requirements every 5 minutes. (Which they never seem to be able to resist to do)

                          A simple task of constructing a personal blog website can easily snowball into a several months long project if you don't take such things into consideration.

                          Using a good framework as a base can make that a lot easier to manage. Things tend to be more organized, and thus, easier to maintain.

                          And never assume anything is going to be simple and quick to create. That will come back and bite you when your deadline is getting closer.

                          Comment

                          • blyxx86
                            Contributor
                            • Nov 2006
                            • 258

                            #14
                            Thanks Atli,

                            The 'simple' task of creating a personal blog (which personally I just don't understand why so many people blog, and why there is so much interest in them.. but that's just me) puts things in perspective. A blog has a relatively limited number of features and if that can take a few months to develop, then that puts my project in perspective in relation to how many more individual areas it contains in respect to a blog. (Client Entry, Tech Schedule, Service Requests, Shipping, RMAs, Invoicing, Knowledge base, Central Documenting, Helpdesk Logs, etc.....) Of course, not all of those need to be fulfilled at the same time, so things get developed as they are moved by necessity.

                            I really need to look into these frameworks soon.. I'm starting to realize the number of individual PHP pages I don't want to be manually updating when Manager A decides they need service dates instead of distribution dates.

                            Comment

                            Working...