Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Elements of Style in Programming (WebCamp Zagreb 2015)

The Elements of Style in Programming (WebCamp Zagreb 2015)

Slide deck from my talk at WebCamp Zagreb 2015.

Bozhidar Batsov

March 23, 2016
Tweet

More Decks by Bozhidar Batsov

Other Decks in Programming

Transcript

  1. size=2 start=0 c=['Н', 'Н' ,'Н' ,'Н' ,'Н','Н','Н','Н','Н','Н','Н','Н','Н','Н'] code_dictionary=Array.new() begin_size_code_dictionary=Array.new() end_string=String.new()

    code_dictionary=c.uniq.to_a decode_dictionary=c.uniq.to_a for i in 0...code_dictionary.size begin_size_code_dictionary[i]=i end c.size.times{ if !code_dictionary.include?(c[start,size].to_s)#Comparation code_dictionary.push(c[start,size].to_s.chomp) start=start+(code_dictionary.last.size)/2-1 size=2 else size+=1; end } end_code=Array.new(code_dictionary.size) for i in begin_size_code_dictionary.size...code_dictionary.size end_code[i]=code_dictionary.index(code_dictionary[i].chop.chop)+1 end_string+=code_dictionary[i].chop.chop end govnokod.ru
  2. A style guide • a curated set of (supposedly) good

    practices • spares you the process of making trivial decisions • allows you to focus on the actual problems • simple and concise
  3. Programs must be written for people to read, and only

    incidentally for machines to execute. — Hal Abelson
  4. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do

    eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Chapter I
  5. LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT, SED DO

    EIUSMOD TEMPOR INCIDIDUNT UT LABORE ET DOLORE MAGNA ALIQUA. UT ENIM AD MINIM VENIAM, QUIS NOSTRUD EXERCITATION ULLAMCO LABORIS NISI UT ALIQUIP EX EA COMMODO CONSEQUAT. DUIS AUTE IRURE DOLOR IN REPREHENDERIT IN VOLUPTATE VELIT ESSE CILLUM DOLORE EU FUGIAT NULLA PARIATUR. EXCEPTEUR SINT OCCAECAT CUPIDATAT NON PROIDENT, SUNT IN CULPA QUI OFFICIA DESERUNT MOLLIT ANIM ID EST LABORUM. LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT, SED DO EIUSMOD TEMPOR INCIDIDUNT UT LABORE ET DOLORE MAGNA ALIQUA. UT ENIM AD MINIM VENIAM, QUIS NOSTRUD EXERCITATION ULLAMCO LABORIS NISI UT ALIQUIP EX EA COMMODO CONSEQUAT. DUIS AUTE IRURE DOLOR IN REPREHENDERIT IN VOLUPTATE VELIT ESSE CILLUM DOLORE EU FUGIAT NULLA PARIATUR. EXCEPTEUR SINT OCCAECAT CUPIDATAT NON PROIDENT, SUNT IN CULPA QUI OFFICIA DESERUNT MOLLIT ANIM ID EST LABORUM. chapter i
  6. Trebaju nam promjene prema otkrivanju i održavanju perspektive razvoja i

    napretka. Naša koalicija najavljuje promjene – promjene koje će oživjeti gospodarstvo kao podlogu razvitka, koje će teret reformi ravnomjernije podijeliti između bogatih i siromašnih, koje će omogućiti odgovornu, funkcionalnu i poštenu upravu, koje će racionalizirati potrošnju i javni rashod, a osigurati standard građana, koje će uvesti pravo zajednice na dio dobiti koju pojedinci izvlače ekstraprofitom, pretvarajući tuđi rad u svoju imovinu. 
 Mi najavljujemo promjenu prirode hrvatskoga kapitalizma i konačni odmak od prakse kapitalizma perifernoga, nekontroliranog, pa i nezakonitog profita, bogaćenja na štetu nacionalnih interesa i podcjenjivanja i odbacivanja prava rada i radnika. Naše promjene ne vode prema slabljenju države, nego prema jačanju uloge odgovorne države, a istodobno jačanju uloge njezinih građana. Poglavlje 1
  7. TREBAJU NAM PROMJENE PREMA OTKRIVANJU I ODRŽAVANJU PERSPEKTIVE RAZVOJA I

    NAPRETKA. NAŠA KOALICIJA NAJAVLJUJE PROMJENE – PROMJENE KOJE ĆE OŽIVJETI GOSPODARSTVO KAO PODLOGU RAZVITKA, KOJE ĆE TERET REFORMI RAVNOMJERNIJE PODIJELITI IZMEĐU BOGATIH I SIROMAŠNIH, KOJE ĆE OMOGUĆITI ODGOVORNU, FUNKCIONALNU I POŠTENU UPRAVU, KOJE ĆE RACIONALIZIRATI POTROŠNJU I JAVNI RASHOD, A OSIGURATI STANDARD GRAĐANA, KOJE ĆE UVESTI PRAVO ZAJEDNICE NA DIO DOBITI KOJU POJEDINCI IZVLAČE EKSTRAPROFITOM, PRETVARAJUĆI TUĐI RAD U SVOJU IMOVINU. pOgLaVljE 1 MI NAJAVLJUJEMO PROMJENU PRIRODE HRVATSKOGA KAPITALIZMA I KONAČNI ODMAK OD PRAKSE KAPITALIZMA PERIFERNOGA, NEKONTROLIRANOG, PA I NEZAKONITOG PROFITA, B O G A Ć E N J A N A Š T E T U N A C I O N A L N I H I N T E R E S A I PODCJENJIVANJA I ODBACIVANJA PRAVA RADA I RADNIKA. SADAŠNJA VLAST SAMO JE ZAŠTITNIK I JAMAC NASTAVKA TAKVE PRAKSE. NAŠE PROMJENE NE VODE PREMA SLABLJENJU DRŽAVE, NEGO PREMA JAČANJU ULOGE ODGOVORNE DRŽAVE
  8. sum = 1 + 2 a, b = 1, 2

    [1, 2, 3].each { |e| puts e } class FooError < StandardError; end
  9. HP

  10. DNK

  11. $:

  12. $;

  13. $*

  14. i = 1 res = 0 while i <= 10

    res += i i += 1 end
  15. •Make it right before you make it faster. •Make it

    fail-safe before you make it faster. •Make it clear before you make it faster.
  16. # This method does bla bla bla. # It returns

    an array of results. def bla_bla_bla res = Set.new # ... res end
  17. // // Dear maintainer: // // Once you are done

    trying to 'optimize' this routine, // and have realized what a terrible mistake that was, // please increment the following counter as a warning // to the next guy: // // total_hours_wasted_here = 42 //
  18. Go