Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Regarding coding standard/structure/frameworks I recommend <a href="http://framework.zend.com/manual/en/coding-standard.html" rel="nofollow noreferrer">zend framework coding standard</a>, <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" rel="nofollow noreferrer">MVC structure</a>, and <a href="http://framework.zend.com/" rel="nofollow noreferrer">Zend Framework</a>.</p> <p>A brief guide for a <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" rel="nofollow noreferrer">MVC</a> architecture. The idea is tho help you remember ideas (while your brain is steaming code) and have documents for future programmers.</p> <ul> <li><p>Design the database. Make an ER diagram. Put it in a document.<br> Briefly describe reasons behind the design for the important issues (why you choose a polymorphic relation, why use this view, what selects you expect that are more trickey etc.). This will change as you code (and there is nothing you can do). Document the changes. To cope with the changes, use a versioning system for the database like <a href="http://guides.rubyonrails.org/migrations.html" rel="nofollow noreferrer">rails migrations</a>.</p></li> <li><p>Design the structure of your website (sections, pages, links, page-flows etc.). Document it. (like: "the site 2 sections, this section is made of ..." etc.)<br> Based on this make a document describing your controllers and views. ( "a controller for articles, with a list view, and article view, also edit and create views but just for admins" etc).<br> Describe how you are going to enforce authentication and authorization (on controller and view level). Who is allowed where.<br> Describe how you protect against the main web-attacks (xss, csrf) where required. (example: "i escape all my view variables using htmlentities for xss protection and ...")</p></li> <li><p>Design your models and side functionality (sending emails, background jobs etc.). These will be the bulk of code. Document each and describe the main issues (for example how timezones are to be handled, how this certain model is to connect to the currency service, how that model is to parse and manipulate some crone file, what algoritm you shall use to decide top 5 articles, depending on your app.) Describe what libraries you use, how, and for what purposes (example: "we are to use curl to scrap SO and make rss feed")<br> Describe how you protect against the main web-attacks where required (sql-injection, xss). </p></li> </ul> <p>As you code, things change. Your knowledge about the discrete works of your system evolves and you start to improve the design based on the new found enlightenment. Document your changes.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload