What are the best steps to follow to build a decent and secure social network platform from scratch?
-
please notify me if my question is too general in which case i will change it. this is what i am planning to do : - study design patterns in PHP - study how to store and process large amounts of data. - take a look on the best practices for building large scale PHP applications - study the architecture of some PHP social network frameworks - designing the architecture of the s.n framework - implement a basic and secure social networking website i have no experience with building big projects, so what do you thing and advice me to do, read, test, tools to use, how to organize ? etc ... i am asking the best methodologies and steps you have followed to build something big, even if it's not a social network
-
Answer:
My first impression notices that the question is dictated around some presumptions that should be eliminated. I see the questions are asking pretty specific questions on technology stack (PHP, assuming you meant LAMP stack) I see the questions are thinking design around good code will win over product decisions Product decisions always win at the start. Feedback / Data from users via traffic patterns trump everything else. Good design patterns would usually apply to any web site or service, not necessarily social networks Great design eyes will inherently factor in security by scrutinizing that eliminate race conditions, curbing DDoS attacks, avoiding SQL injections, etc. Surround yourself with experienced folks from each area (tech ops, product, financing, etc.) and don't be afraid to ask in person. Good luck!
Jack Chan at Quora Visit the source
Other answers
At first you should think about: "What kind of data you will store?", "What kind of logic the social network will have?" Than you can think about data base engine. If your project isn't successful existing project what need changes for architecture in order to get benefits like speed, less servers traffic and other things, just build your project standard way. What are differences? Now you don't know nothing about people behavior, you don't know which parts of platform have the biggest traffic. Design patterns? If you don't have to big knowledge about it, don't be worry. If you make a right choice for framework, you will have architectural rules as a base for your work. Modern frameworks have good secure libraries for authentication and authorisation and managing users permissions. SQL injection secure is resolved in layer of orm. Every well maid framework serve a lot of protection but "the biggest enemy is in us". Every developer can do few wrong implementations, make a wrong choice. If you are looking for good solutions dedicated for large scale application i can recommend for you: PHP: symfony2 (+doctrine2). Well designed. Help you manage server side architecture. Many clear rules. Very advanced. Big community open for help. Great documentation.. javascript: backbone(+jquery) help you manage your javascript in order to get well designed and clear architecture. Can help to split your project for separated areas managing requests by ajax. Template system like underscode(default backbone templates system) help you reduce data consumption tranferring between client and server (just json raw data). database: depend on kind of data and system logic.
Roman Piekarski
Big means scaling and scaling means latency. Everything is about latency, so you should design to compensate for latency. What I mean is, big sites use clusters of machines, or sharded databases, and you have to account for things like replication lag, or job queuing, or race conditions due to sub-millisecond processes clashing. At scale, saving milliseconds in your app could mean the difference between staying up or going down.
Jeremy Wilson
Related Q & A:
- What is the best practice for free space for a SQL server database drive?Best solution by Database Administrators
- What is the best company (commercial service) to promote a website?Best solution by Yahoo! Answers
- What are some best practices to follow when designing for users completely unfamiliar with computers?Best solution by User Experience
- What's the best answer for why you left a previous job?Best solution by Yahoo! Answers
- What is the best hybrid bike to use as a commuter bike?Best solution by thesweethome.com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.