SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
20 / 80



    Добри правила
    при писане на
    код

1
             Кирил Митов @ TUES
Имплементация / Поддръжка



           20                   80
    20 % от живота в       80 % от живота в
     имплементация            поддръжка


      Пишете добре структуриран код.
      Пишете код, който лесно да се

       реструкторира.


2
                                 Кирил Митов @ TUES
Имплементация / Поддръжка



              20                    80
   само 20 % от
написалите кода ще
    участват в
   поддръжката
        Пишете кода за „другите след вас“.



3
                                     Кирил Митов @ TUES
Дължина на метод



           20                   80
 20 % от метода е        80 % от метода е
същинската работа        трансформации и
                             проверки
      Пишете „къси“ методи
      Пишете методи с „малко“ аргументи




4
                                 Кирил Митов @ TUES
Дължина на метод



               20                          80
        Къс метод – 7 реда
         public void method(int param) {
            1 проверка/инициализация
            2 проверка/инициализация
            3 проверка/инициализация
            4 работа
            5 проверка/трансформация
            6 проверка/трансформация
            7 проверка/трансформация
         }




5
                                           Кирил Митов @ TUES
Дължина на метод



             20                        80
        Къс метод – 10 реда
     public void method(int param) {
        try {
           1 проверка/инициализация
           2 проверка/инициализация
           3 проверка/инициализация
           4 работа
           5 проверка/трансформация
           6 проверка/трансформация
           7 проверка/трансформация
        } catch(Exception e) {
           logger.error(e);
        }
     }
6
                                       Кирил Митов @ TUES
Брой аргументи



            20                             80
      Колкото повече са аргументите
       толкова по често ще се добавят нови
       или махат стари
      До 4(5) аргумента


     public void method(int param1,int param2,int
     param3,int param4) {

     }




7
                                            Кирил Митов @ TUES
Брой аргументи



             20                              80
        Над 4(5) аргумента – създайте нов
         клас
     public void method(ParamsHolder paramsHolder) {

     }

     public class ParamsHolder   {
        public int getParam1()   {return param1;}
        public int getParam2()   {return param2;}
        ...
        public int getParamN()   {return paramN;}
     }


8
                                              Кирил Митов @ TUES
Стойност



           80                        20
80 % от стойността            идва от 20 % от
                                   кода
      „The simplest thing that could possibly
       work, but not simpler “
      Не пишете повече от необходимото

      Намалете излишното




9
                                      Кирил Митов @ TUES
Производителност



             80                 20
в 80 % от времето         се изпълнява 20%
                               от кода
        Подобрете производителността
         първо на тези 20 %




10
                                 Кирил Митов @ TUES
Публично API



             80                     20
 80 % методите на          20 % от методите са
 обект са скрити за        достъпни за външни
  другите обекти                 обекти
        Ако клас съдържа много public методи
         разделете класа на два




11
                                     Кирил Митов @ TUES
Коментари



                     100
    Не поставяйте „много“ коментари
    Кодът трябва да говори сам за себе си
    Коментарът не трябва да повтаря кода
    Ако трябва да сложите коментар
     опитайте се да преработите кода, така
     че да няма нужда от коментар


12
                                  Кирил Митов @ TUES
Коментари



                         100
    Коментарът не трябва да повтаря кода.
     Не правете това:
    public void method(int param) {
       // check if param is less then 4
       if(param < 4)
          createFibonaciEvaluator();
    }




13
                                          Кирил Митов @ TUES
Коментари



                         100
    Кодът трябва да говори сам за себе си. Не
     правете това:
public void method(int param) {
   for(int i =0; i<10; i++) {
      for(int k =0; k<10; k++) {
         if(k == i) {

           } else if(k== i-1) {
              while(k<4) {
              }// end of while
           }// end of if
        }// end of for
     }// end of for
14
                                   Кирил Митов @ TUES
Отговорност



                       100
          Всеки обект върши само една точно
                 определена задача.

        Ако метод не използва вътрешното
         състояние на обекта, то този метод
         не трябва да е в този клас




15
                                    Кирил Митов @ TUES
Тестове



                   100
     100 % от кода трябва да има тестове




16
                               Кирил Митов @ TUES

Weitere ähnliche Inhalte

Andere mochten auch

Komunikacja bezprzewodowa - standard 802.11
Komunikacja bezprzewodowa - standard 802.11Komunikacja bezprzewodowa - standard 802.11
Komunikacja bezprzewodowa - standard 802.11rlutowsk
 
804501 กฤษณี&ปิยชาติ
804501 กฤษณี&ปิยชาติ804501 กฤษณี&ปิยชาติ
804501 กฤษณี&ปิยชาติgitsanee thongnoi
 
сайт 8 марта 15
сайт 8 марта 15сайт 8 марта 15
сайт 8 марта 15virtualtaganrog
 
80W LED Street Light new - www.ngtlight.com
80W LED Street Light new  - www.ngtlight.com80W LED Street Light new  - www.ngtlight.com
80W LED Street Light new - www.ngtlight.comngt led
 
802.11 technology overview
802.11 technology overview802.11 technology overview
802.11 technology overviewsureshkumarmss
 
805 38-lily
805 38-lily805 38-lily
805 38-lilylily0510
 
пк 8 по без границ11.05.2016
пк 8 по без границ11.05.2016пк 8 по без границ11.05.2016
пк 8 по без границ11.05.2016labdua
 
8.08.13 Лагерь_Савва_Морозов_Паладьев
8.08.13 Лагерь_Савва_Морозов_Паладьев8.08.13 Лагерь_Савва_Морозов_Паладьев
8.08.13 Лагерь_Савва_Морозов_ПаладьевОлег Паладьев
 
碳酸鈉81027
碳酸鈉81027碳酸鈉81027
碳酸鈉81027family
 

Andere mochten auch (17)

Komunikacja bezprzewodowa - standard 802.11
Komunikacja bezprzewodowa - standard 802.11Komunikacja bezprzewodowa - standard 802.11
Komunikacja bezprzewodowa - standard 802.11
 
8051 1
8051 18051 1
8051 1
 
804501 กฤษณี&ปิยชาติ
804501 กฤษณี&ปิยชาติ804501 กฤษณี&ปิยชาติ
804501 กฤษณี&ปิยชาติ
 
сайт 8 марта 15
сайт 8 марта 15сайт 8 марта 15
сайт 8 марта 15
 
806 קיץ 2011
806 קיץ 2011806 קיץ 2011
806 קיץ 2011
 
800 diamond fiche produit
800 diamond fiche produit800 diamond fiche produit
800 diamond fiche produit
 
81, 1940
81, 194081, 1940
81, 1940
 
80W LED Street Light new - www.ngtlight.com
80W LED Street Light new  - www.ngtlight.com80W LED Street Light new  - www.ngtlight.com
80W LED Street Light new - www.ngtlight.com
 
802.11 technology overview
802.11 technology overview802.11 technology overview
802.11 technology overview
 
80ans
80ans80ans
80ans
 
805 38-lily
805 38-lily805 38-lily
805 38-lily
 
81 100 exec_int_texto
81 100 exec_int_texto81 100 exec_int_texto
81 100 exec_int_texto
 
пк 8 по без границ11.05.2016
пк 8 по без границ11.05.2016пк 8 по без границ11.05.2016
пк 8 по без границ11.05.2016
 
8.08.13 Лагерь_Савва_Морозов_Паладьев
8.08.13 Лагерь_Савва_Морозов_Паладьев8.08.13 Лагерь_Савва_Морозов_Паладьев
8.08.13 Лагерь_Савва_Морозов_Паладьев
 
80 20 Principle
80 20 Principle80 20 Principle
80 20 Principle
 
碳酸鈉81027
碳酸鈉81027碳酸鈉81027
碳酸鈉81027
 
pusula yazılım GBM 8
pusula yazılım GBM 8 pusula yazılım GBM 8
pusula yazılım GBM 8
 

Mehr von Kiril Mitov

Open Source SOA@OpenFest.org
Open Source SOA@OpenFest.orgOpen Source SOA@OpenFest.org
Open Source SOA@OpenFest.orgKiril Mitov
 
JPicus@ESE2009 as presented
JPicus@ESE2009 as presentedJPicus@ESE2009 as presented
JPicus@ESE2009 as presentedKiril Mitov
 
Eclipse Modeling Framework@TUES
Eclipse Modeling Framework@TUESEclipse Modeling Framework@TUES
Eclipse Modeling Framework@TUESKiril Mitov
 
Eclipse Editors@TUES (Part 2)
Eclipse Editors@TUES (Part 2)Eclipse Editors@TUES (Part 2)
Eclipse Editors@TUES (Part 2)Kiril Mitov
 
Eclipse Editors@TUES (Part1)
Eclipse Editors@TUES (Part1)Eclipse Editors@TUES (Part1)
Eclipse Editors@TUES (Part1)Kiril Mitov
 
Eclipse Overview@TUES
Eclipse Overview@TUESEclipse Overview@TUES
Eclipse Overview@TUESKiril Mitov
 
Standard Widget Toolkit@TUES
Standard Widget Toolkit@TUESStandard Widget Toolkit@TUES
Standard Widget Toolkit@TUESKiril Mitov
 

Mehr von Kiril Mitov (10)

Open Source SOA@OpenFest.org
Open Source SOA@OpenFest.orgOpen Source SOA@OpenFest.org
Open Source SOA@OpenFest.org
 
JPicus@ESE2009 as presented
JPicus@ESE2009 as presentedJPicus@ESE2009 as presented
JPicus@ESE2009 as presented
 
Agile Processes
Agile ProcessesAgile Processes
Agile Processes
 
Eclipse Modeling Framework@TUES
Eclipse Modeling Framework@TUESEclipse Modeling Framework@TUES
Eclipse Modeling Framework@TUES
 
Eclipse Editors@TUES (Part 2)
Eclipse Editors@TUES (Part 2)Eclipse Editors@TUES (Part 2)
Eclipse Editors@TUES (Part 2)
 
Eclipse Editors@TUES (Part1)
Eclipse Editors@TUES (Part1)Eclipse Editors@TUES (Part1)
Eclipse Editors@TUES (Part1)
 
Eclipse Overview@TUES
Eclipse Overview@TUESEclipse Overview@TUES
Eclipse Overview@TUES
 
JFace@TUES
JFace@TUESJFace@TUES
JFace@TUES
 
Standard Widget Toolkit@TUES
Standard Widget Toolkit@TUESStandard Widget Toolkit@TUES
Standard Widget Toolkit@TUES
 
JPicus@ESE
JPicus@ESEJPicus@ESE
JPicus@ESE
 

80 20@TUES

  • 1. 20 / 80 Добри правила при писане на код 1 Кирил Митов @ TUES
  • 2. Имплементация / Поддръжка 20 80 20 % от живота в 80 % от живота в имплементация поддръжка  Пишете добре структуриран код.  Пишете код, който лесно да се реструкторира. 2 Кирил Митов @ TUES
  • 3. Имплементация / Поддръжка 20 80 само 20 % от написалите кода ще участват в поддръжката  Пишете кода за „другите след вас“. 3 Кирил Митов @ TUES
  • 4. Дължина на метод 20 80 20 % от метода е 80 % от метода е същинската работа трансформации и проверки  Пишете „къси“ методи  Пишете методи с „малко“ аргументи 4 Кирил Митов @ TUES
  • 5. Дължина на метод 20 80  Къс метод – 7 реда public void method(int param) { 1 проверка/инициализация 2 проверка/инициализация 3 проверка/инициализация 4 работа 5 проверка/трансформация 6 проверка/трансформация 7 проверка/трансформация } 5 Кирил Митов @ TUES
  • 6. Дължина на метод 20 80  Къс метод – 10 реда public void method(int param) { try { 1 проверка/инициализация 2 проверка/инициализация 3 проверка/инициализация 4 работа 5 проверка/трансформация 6 проверка/трансформация 7 проверка/трансформация } catch(Exception e) { logger.error(e); } } 6 Кирил Митов @ TUES
  • 7. Брой аргументи 20 80  Колкото повече са аргументите толкова по често ще се добавят нови или махат стари  До 4(5) аргумента public void method(int param1,int param2,int param3,int param4) { } 7 Кирил Митов @ TUES
  • 8. Брой аргументи 20 80  Над 4(5) аргумента – създайте нов клас public void method(ParamsHolder paramsHolder) { } public class ParamsHolder { public int getParam1() {return param1;} public int getParam2() {return param2;} ... public int getParamN() {return paramN;} } 8 Кирил Митов @ TUES
  • 9. Стойност 80 20 80 % от стойността идва от 20 % от кода  „The simplest thing that could possibly work, but not simpler “  Не пишете повече от необходимото  Намалете излишното 9 Кирил Митов @ TUES
  • 10. Производителност 80 20 в 80 % от времето се изпълнява 20% от кода  Подобрете производителността първо на тези 20 % 10 Кирил Митов @ TUES
  • 11. Публично API 80 20 80 % методите на 20 % от методите са обект са скрити за достъпни за външни другите обекти обекти  Ако клас съдържа много public методи разделете класа на два 11 Кирил Митов @ TUES
  • 12. Коментари 100  Не поставяйте „много“ коментари  Кодът трябва да говори сам за себе си  Коментарът не трябва да повтаря кода  Ако трябва да сложите коментар опитайте се да преработите кода, така че да няма нужда от коментар 12 Кирил Митов @ TUES
  • 13. Коментари 100  Коментарът не трябва да повтаря кода. Не правете това: public void method(int param) { // check if param is less then 4 if(param < 4) createFibonaciEvaluator(); } 13 Кирил Митов @ TUES
  • 14. Коментари 100  Кодът трябва да говори сам за себе си. Не правете това: public void method(int param) { for(int i =0; i<10; i++) { for(int k =0; k<10; k++) { if(k == i) { } else if(k== i-1) { while(k<4) { }// end of while }// end of if }// end of for }// end of for 14 Кирил Митов @ TUES
  • 15. Отговорност 100 Всеки обект върши само една точно определена задача.  Ако метод не използва вътрешното състояние на обекта, то този метод не трябва да е в този клас 15 Кирил Митов @ TUES
  • 16. Тестове 100 100 % от кода трябва да има тестове 16 Кирил Митов @ TUES