mhpreiman
11/27/2016 - 6:21 PM

Notes on development

  • In file names to separate words, use - instead of _ (reasoning)
  • Take screenshots of various stages of work, starting from analytics
  • Issue statuses such as Code Review Awaiting QA Ready to Merge might helpt with projects management
  • Mobile first - et ilmneks elemendid, mis kindlasti peavad olema
    1. sisu
    2. struktuurikavand layout mobiilile, et näha kuidas sisu paigutuma hakkab
    3. struktuurikavand tabidele ja arvutitele
    4. lõpuks disainikavand, mõeldes ka muudele vidinatele (nt animatsioonid, sliderid)
  • If you are including third-party code in your patch, commit it separately. It is much harder to review code properly when 9000 lines of jQuery are dropped in the middle.
  • Refactor code incrementally. Figure out a partial change of reasonable scope that results in a working code base and brings you in the direction you want to go.
  • library vs framework: "the big difference is that your code calls a library while a framework calls your code"


  • Decide on what fonts to use before tinkering with them (avoid waisting time on a font that you might discard)
  • Use rem units (dependent on root font-size, unlike ems that depend on current element), except in modules for local child elements
    You can code in px at first (except the html-body font), then convert px to rem with either .. or postprocessing.
  • Prototüübi erinevus lõplikust lahendusest: 1) andmed ei salvestu ja 2) sisuhaldust ei toimu.
  • Margin/padding %-s are calculated against element's width (eg padding:10% % depends on the same element's width)
  • Something javascript dynamics at first (except the html-body font), then convert px to rem with either .. or postprocessing.
  • Website titles should be max 70 characters (including spaces) - rest will be cut in search engines.
  • Content descriptions (sisukirjeldus) should be max 155 characters - rest will be cut in search engines.
  • DON'T use icon fonts! They fkn suck (messy unaccessible pieces of garbage). Period! Use SVG instead.

Mobile

  • click-on forms that are zoomed in without the rest of the page being zoomed

Quick list of Developer Rules

A typical deployment pipeline:

Sammud tarkvaraarenduses

Dokumentatsiooni loomine

  • Projektijuhtimine

  • projektiplaani koostamine ja jälgimine

  • ressursside haldus

  • Nõuete kogumine ja analüüs

  • info kogumine: küsitluslehtede analüüs *

  • talitlus- (äri)protsesside modelleerimine

  • prototüüpimine (piiratud funktsionaalsusega lahenduse loomine ja kasutajatelt selle põhjal tagasiside saamine)

  • nõuete haldus *

    • dokumenteerimine
    • viitamine
    • varustamine atribuutidega (nõude selgus, nõude allikad, jm)
    • prioritiseerimine
    • versioonihaldus (märgitud ka muudatuse põhjendus ja taotleja)
  • andmemudeli ja sõnastiku koostamine, et vältida nii mitmetimõistetavusi ja andmete kvaliteediprobleeme (nt dubleerimist)

  • dokumentatsiooni genereerimine automaatselt olemasolevast koodist

  • Luua arhitektuur (nt UML abil)

Project architecture should be described in detail in your design documentation.

  • Programmerimine + testimine

  • koodi, sh ekraanivormide, raportite, automaatne genereerimine arhitektuurse disaini alusel

  • silur (debugger) koodi samm-sammuliseks käivitamiseks ja testimiseks

  • testimine (testide kirjeldamine, käivitamine, tulemuste analüüs ja dokumenteerimine)

  • koodi kommenteerimine ja dokumenteerimine

  • koodi versioonihaldus

  • Toote konfiguratsioonihaldus

  • koodi versioonihaldus

* töövahendiga, mis lubab muutusi mitme kasutaja poolt samaaegselt ning toetab kasutajarolle (eri õigused eri rollidele: projektijuht, analüütik, arhitekt, kasutaja)


Design (arhitektuur)

How to Design for User Flow?

Overall design process:


Glossary

Artifact:  "things" produced by people involved in the process, eg design documents, data models, workflow diagrams, test matrices and plans, setup scripts, ... like an archaeological site, any thing that is created could be an artifact. Example
Transpilation:  converting one programming language to another

Encapsulation:  restricting direct access to some of the object's components OR/AND bundling of data with the methods that operate on that data

Interface:  a description of the actions that an object can do OR what it must have in order to be an "X"

Dereference:  obtain from (a pointer) the address of a data item held in another location

Referencing:  taking the address of an existing variable (using &) to set a pointer variable

API:  refers to the methods a programmer will use to interface with the software

Isomorphism:  describes that if you look at the same entity in two different contexts, you should get the same thing (eg isomorphic application is one whose code can run both in the server and the client)

Pseudokood:  kood, mis ainult esindab programmi loogikat - ülevaatlik ⋅sõrestik päris koodi loomiseks (et loogikavead varakult avastada)

Heuristic:  a technique to solve problems quicker OR find an approximate solution when classic methods are too slow OR fail to find any exact solution   heuristic vs algorithm

Alternatiivsed nimed MVC sõnadele:   model (class)   view (template)   controller (act)