質問

I have been working on a project of mine for quite a while now in PHP. Lately I have been thinking about getting some help, and I started looking into Git, Issue tracking, and Continuous Integration, as it is a rather large project. This also got me looking into Unit Testing, but I never really made a clear design for my project, I had just started writing it.

After looking extensively into all of this, and setting up some systems, I have decided to go back to the beginning and start from scratch, hopefully doing it right this time. I did quite a bit of googling on starting a PHP project, but I couldn't quite find anything that encompasses my projects needs, as this is far from a new idea, or a small project.

I need some help on how to start this again, and putting some of this in order. From what I can find, the best place to start is to have a definitive "design" for the project. I'm not exactly sure how to go about this, if I should write it on paper, or use some sort of program to do it. I am also not sure how I should put my design together exactly, so that if more people join the project they can jump right in.

I am also trying to build a pipeline for developing this project with multiple team members. I have decided on the following to manage my project:

  • Atlassian Bitbucket and Git for managing the code (Eventually I will move to Stash)
  • Atlassian Bitbucket Issues for managing the project (Features, Tasks, Bugs) to which I will eventually move to JIRA, integrated with Stash.
  • Atlassian Bamboo for Continuous Integration once we move away from Bitbucket
  • PHPUnit for Unit Testing

Once design is complete, I also need to build a pipeline for how feature requests and bug reports go from the developers, to Git, to Unit Testing and then to test deployment, and eventually production.

Another issue I was having with the general design of my project, in terms of the actual code. As it stand the entire project is VERY procedural. I had attempted to convert it to be Object Oriented, but that was not possible due to how far I was into the project. Therefore I will start it out as OOP instead.

Any pointers, articles, websites, videos, etc would be much appreciated! I really want to do this right from the beginning.

役に立ちましたか?

解決

I think you're trying to tackle too much at once, and you're over-complicating it. Sketch out what you are trying to do on paper first, making it as simple as you possibly can. Then, make it even simpler. Throw away any ideas that are 'nice to have' in the first version (the axiom You Ain't Gonna Need It is very helpful here).

Your first aim is to develop a prototype that just about works. Do not get bogged down in fancy UI or learning clever technology unless it is absolutely essential to the success of your enterprise.

Also, approach possible users, or people you know in the field of your project, and ask them whether they think it is a good idea. Be willing to hear that the scope of the project needs refining.

Then, set up Git on your local machine, and get something working. Don't worry about whether you are doing it perfectly at first. If you actually have existing team members, push it to a remote Git site so they can pull from there1. A VPS with SSH access is suitable for this, it'll cost you a few GBP/USD per month. Learn branching and merging if you can, it is very useful.

When you have stuff taking shape, push to a test machine on the web (re-using the same VPS) and try it out there. Let some users onto it as early as you can, and release as often as you can.

It is a good idea to write tests, yes, but don't spend excessive time worrying about CI and your bug reporting mechanims before your prototype is ready.


1 Always keep an offsite backup, of course.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top