(05-22-2015, 11:48 AM)no1youknowz Wrote: (05-22-2015, 08:13 AM)CroNiX Wrote: Build a large, complex high traffic website in Laravel, then build the same in Codeigniter.
What is large?
What is complex?
What is high traffic?
Some people think having more than 10 controllers in your app is large.
Some people think having jquery in your appliction is complex.
Some people think having 10k daily impressions is high traffic.
You don't know large, complex or high traffic until you get to the billions impressions per month.
I have a split architecture for the front-end and back-end.
The front end consist of 3 all-in-one servers with Nginx/HHVM as the webserver and Aerospike as the local cache and in-memory database.
The backend consist of a 5 database server cluster running Postgres and CitusDB.
The backend server running the webserver application for analytics is Nginx/HHVM.
The traffic that the 3 FE servers are capable of doing are 7.2 billion impressions a month and that has been verified by testing.
The reports generated on this database, with billions of impressions would make a single MySQL or even a MySQL cluster just weep.
What's the backend developed on you ask? Codeigniter 3. I'm actually coming round to the idea, to just leave it where it is. Until something drastic happens that I require functionality that I either cannot develop or is somewhere else. I'll then move. Until then, well. Codeigniter is doing the job just fine thanks.
What do you need to learn?
Learn a good MVC framework and actual OOP principles.
Learn a javascript/jquery really well. That is, you stop using plugins on the net and develop your own. After that, you can extend other peoples work easily.
Learn about Message Queues. Mainly ZeroMQ, RabbitMQ and beanstalkd. Learn why you want to put some processes in the backend.
Learn how to develop a single page application. Something that is heavily ajax and json driven.
Learn how to include real-time elements into your application. Think MQ and NodeJS.
Learn how to develop backend applications. PHP is not your friend. Use something like Python or even GoLang. A backend app that can be run as a system daemon for months/years without needing a restart.
Learn SQL Syntax. Don't use that ORM or PHPMyAdmin. Learn how queries work and do everything to the bare-metal/stored procedures to get the best performance.
Learn the differences between a RDBMS and NoSQL DB. A NoSQL such as Aerospike can increase performance with heavily requested data compared to MySQL.
So in short, become a full stack engineer: PHP/OOP, Javascript/jQuery, Message Queues, NodeJS, Python, GoLang, SQL, NoSQL, Postgres DB.
WOW, where do you work? Whats the site? Just curious. I tried to msg you, but I think you have PM disabled