Reputation: 847
Some general information
I'am a project manager for a startup firm. This firm developes some solution for parking with your mobile phone. For this we collaborate with a IT firm who does the programming work. They develop the php application and the app(s).
I'am a learned for software engineer and this is my first job. Now the development is started, i have the responsibility that the IT firm develop the software to our wishes. I also responsible for managing the software quality.
I have program experience with Android, HTML, CSS, C# and can read php for 50 till 75%. I understand the web "work flows" (request answer idea and the response code theorie) I also know with rest API's.
Application informatin
My "problem"
Now a technical proof of concept is almost ready. I take a view in the code and asked some questions about the used techniques but some things are not meet my performance. - They use OneUI as front end framework - Write an own "custom" backend framework/application - Mix PHP with HTML instead of using MVC - Don't use ORM's
We discussed these points in a meeting and one thing whe cant find a way which is prefered by every one. The IT firm has different opinions as i have.
In my opinion we need to use an existing framework such as Laravel, Symphony or Phalcon. I personally prefer Laravel or symphony. This becouse it forces you to use a clean way to develop your application. The code is much more clean and the performance can be positively increase when using the frameworks on the right way. Frameworks also always been updated by the frame work developer or community so security leakes will be fixed. It also makes it more easy to edit the application in a year by another programmer because the code is nicely structured. The last point is, when the application has his first release, there is a chance that we stop collaborate with the IT firm and take a own programmer.
The IT firm doesn't have experiences with frameworks like that. Their opinion is that it is much better for security reasons to create an own framework. They say it happens a lot that a leak/bug is found in an framework. All websites build on these frameworks can be traced and hacked over some bugs or leaks than. This is their only "hard" point to say "don't use a existing framework" They also say, whe you build your own framework the chance is very small that someone tries to find leaks or trying to come into your system becouse nobody understands your framework.
I think different about this because a lot of BIG applications using also existing frameworks. When these have a bigger security risk, why do they use them then?
Now i got a mail and they wrote in it where they write in "when we use a framework we prefer AnguarJS becouse it is works great with OneUI" I thought angularJS is a UI framework? It also is not in the top 10 "best frameworks" for developing big and high scalable applications.
I understand all the technical details but i'm not experienced in developing PHP applications so.....
My questions:
Are there some extra security risks when we use an existing framework?
Is angularJS not a front end framework? becouse they say they can use it for the backend/logic?
I prefer to use Laravel as framework with AngularJS on top of it for the interfaces but as i said i'm not a php developer so this is only my conclusion of the things i read and heared from php developers.
I did already some research and read daily over PHP frameworks but the time to make a decision is short so thats why i ask for advice here.
Upvotes: 1
Views: 2833
Reputation: 493
Don't develop your application for the future. Chances are in 3-4 years you're going to completely scrap this project anyways. And if you really do end up having 1 million+ active users you'll have a large cash flow (hopefully) to refactor at that point.
You're a start up, your best bet is to launch something ASAP and see if people even think your idea is worth while.
Too many companies die working out the small details. Get cash-flow positive and then start worrying about optimizing and refactoring the application when you can hire your own in-house developers.
Obviously you don't want to have awesome user-experience so that should be the only true goal early on.
To answer your question... what I've found is very simple to do is something like this:
Use an existing PHP framework if you're going the PHP route. Something like YII or Laravel because these are well documented and easy to get started on ASAP.
If you're building an API then use something simple that allows you to proliferate some sort of monolith very very quickly.
As for a front-end... it doesn't really matter. It can be done with angularJS or any other JS framework very easily. I prefer AngularJS just because it's what I've worked with but there are many other great options out there as well.
I'd just use whatever the dev team is most comfortable with for now and then when you redo the app (which will inevitably happen in a few years for a new company).
Upvotes: 2