Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Gerrit´úÂëReviewÈëÃÅʵս
 
À´Ô´£ºcsdn  ·¢²¼ÓÚ 2016-12-23
  3097  次浏览      27
 

´úÂëÉóºË£¨Code Review£©ÊÇÈí¼þÑз¢ÖÊÁ¿±£ÕÏ»úÖÆÖзdz£ÖØÒªµÄÒ»»·£¬µ«ÔÚʵ¼ÊÏîĿִÐйý³ÌÖУ¬È´ÒòΪÖÖÖÖÔ­Òò±»DelayÉõÖÁÊǺöÂÔ¡£ÔÚʵ¼ùÖУ¬¸ø´ó¼ÒÍÆ¼öÒ»¿îÃâ·Ñ¡¢¿ª·ÅÔ´´úÂëµÄ´úÂëÉó²éÈí¼þGerrit¡£

1. Why Code Review

Code ReviewÊÇʲô£¿

Code Review×îÖ±¹ÛµÄ½âÊͼ´¿´´úÂë¡£³£¹æµÄ×ö·¨Îª×Ô¼º¿´£¬ÓÐʱ´úÂëÂß¼­ÎÊÌâ¿ÉÄÜ×Ô¼º¿´²»³öÀ´£¬ÐèÒªÕÒͬÊÂÒ»Æð¿´£¬ÔÚ´ó¼Ò֪ʶÌåϵÏà¶Ôƽ¾ùµÄÇé¿öÏ¿ÉÄÜÐèÒª»¨Ç®×¨ÃŵĹ«Ë¾°ïÖú²é¿´¡£

Code ReviewÐèÒª¿´ÄÄЩ£¿¶ÔÓÚ¸ÕÈëÖ°³¡»òÕ߸սӴ¥µ½CodingµÄÐÂÈËÀ´Ëµ£¬´úÂë·ç¸ñÊDZȽÏÖØÒªµÄÒ»¿é¡£³ý´ËÖ®Í⣬±àÂë¹æ·¶¼°´úÂë½á¹¹Ð´·¨£¬¿ò¼ÜºÍ¹¤¾ßµÄÑ¡ÐÍ£¬¾ßÌåÏîÄ¿µÄÒµÎñÂß¼­£¬°²È«Òþ»¼£¬ÐÔÄÜÎÊÌâµÈ¶¼¿ÉÒÔͨ¹ýreviewµÄ·½Ê½·¢ÏÖ¡£Code Review´ÓǰÍùºó´óÖ·ÖΪ½á¶Ô±à³Ì£¬Ìá½»´úÂëºó£¬²âÊÔ֮ǰ£¬·¢°æÖ®Ç°£¬·¢°æÖ®ºóµÈ¼¸¸ö½×¶Î£¬Ô½Íùºó£¬Code ReviewµÄЧ¹ûÔ½²î£¬ÐÞ¸´µÄ³É±¾Ò²Ô½À´Ô½¸ß¡£

Ϊʲôһ¶¨Òª×öÈë¿âǰCode Review£¿

Ê×ÏÈ£¬´úÂëÉó²éµÄ×î´óµÄ¹¦ÓÃÊÇ´¿Éç»áÐԵġ£Èç¹ûÄãÔÚ±à³Ì£¬¶øÇÒÖªµÀ½«»áÓÐͬʼì²éÄãµÄ´úÂ룬Äã±à³Ì̬¶È¾ÍÍêÈ«²»Ò»ÑùÁË¡£Äãд³öµÄ´úÂ뽫¸ü¼ÓÕû½à£¬ÓиüºÃµÄ×¢ÊͺͳÌÐò½á¹¹¡£

Æä´Î£¬ÍµÀÁÊÇÈ˵ÄÌìÐÔ£¬´Ó½ÚÔ¼³É±¾µÄ½Ç¶È¿¼ÂÇ£¬´ó¼ÒÒ»°ã»áÑ¡ÔñÔÚ²âÊÔ֮ǰÎÞÏÞÖÆµÄDelay Code Review¡£Èë¿âǰ×öCode Review±ãÊdzɱ¾ºÍЧ¹ûÖ®¼ä×î¼Ñƽºâµã£¬ËüÄܼ°Ê±·¢ÏÖÎÊÌ⣬½øÐÐÐ޸ĺóÈ·±£´úÂëÖÊÁ¿¡£

×îºó£¬´úÂëÉó²éÄÜ´«²¥ÖªÊ¶¡£Ôںܶ࿪·¢ÍŶÓÀ¾­³£Ã¿¸öÈ˸ºÔðÒ»¸öºËÐÄÄ£¿é£¬Ã¿¸öÈ˶¼Ö»¹Ø×¢×Ô¼ºµÄÄ£¿é¡£³ý·ÇÊÇͬʵÄÄ£¿éÓ°ÏìÁË×Ô¼ºµÄ³ÌÐò£¬ËûÃÇ´Ó²»Ï໥½»Á÷¡£ÕâÖÖÇé¿öµÄºó¹ûÊÇ£¬Ã¿¸öÄ£¿éÖ»ÓÐÒ»¸öÈËÊìϤÀïÃæµÄ´úÂë¡£Èç¹ûÕâ¸öÈËÐݼٻò´ÇÖ°ÁË£¬ÆäËûÈËÔòÊøÊÖÎ޲ߡ£Í¨¹ý´úÂëÉó²é£¬ÖÁÉÙ»áÓÐÁ½¸öÈËÊìϤÕâЩ³ÌÐò¡ª¡ª×÷Õߣ¬ÒÔ¼°Éó²éÕß¡£Éó²éÕß²¢²»ÄÜÏñ³ÌÐòµÄ×÷ÕßÒ»Ñù¶Ô³ÌÐòÊ®·ÖÁ˽⣬µ«ÖÁÉÙËû»áÊìϤ³ÌÐòµÄÉè¼ÆºÍ¼Ü¹¹£¬ÕâÊǼ«ÆäÖØÒªµÄ¡£

2. Gerrit¼ò½é

GerritÊÇGoogleΪAndroidϵͳÑз¢Á¿Éí¶¨ÖÆµÄÒ»Ì×Ãâ·Ñ¿ªÔ´µÄ´úÂëÉóºËϵͳ£¬ËüÔÚ´«Í³µÄÔ´Âë¹ÜÀíЭ×÷Á÷³ÌÖÐÇ¿ÖÆÐÔÒýÈë´úÂëÉóºË»úÖÆ£¬Í¨¹ýÈ˹¤´úÂëÉóºËºÍ×Ô¶¯»¯´úÂëÑéÖ¤¹ý³Ì£¬½«²»·ûºÏÒªÇóµÄ´úÂëÆÁ±ÎÔÚ´úÂë¿âÖ®Í⣬ȷ±£ºËÐÄ´úÂë¶àÈËУÑé¡¢¶àÈË»¥±¸ºÍ×Ô¶¯»¯¹¹½¨ºËÑé¡£

Gerrit֮ǰµÄϵͳ¼Ü¹¹£º

GerritÖ®ºóµÄϵͳ¼Ü¹¹£º

ͨ¹ýGerrit»úÖÆ½«´úÂë×ö·Ö¸ô¡£

GerritÊÊÓÃÐÔ

¼¸ºõÈκÎÐèÒªÕýʽ·¢²¼µÄÏîÄ¿¶¼Ó¦µ±Ê¹ÓÃGerritÀ´½øÐдúÂëÉó²é£¬Èç¹ûTeamÖÐÓÐÐÂÈË£¬±ØÐëʹÓÃGerritÈ·±£´úÂëÖÊÁ¿¡£

GerritЧ¹û

ÕûÌåÉÏÀ´Ëµ£¬¸öÍÆÊ¹Óõıê×¼ÅäÖÃΪGerrit+Jenkins+Sonar£¬Õû¸öϵͳ´î½¨Íê³ÉºóµÃµ½µÄЧ¹ûΪ£º100% Code StyleÎÊÌâ±ÜÃâÈë¿â£¬80% Éè¼ÆÎÊÌâ±ÜÃâÈë¿â£¬40% Âß¼­´íÎó±ÜÃâÈë¿â£¬20% °²È«Òþ»¼±ÜÃâÈë¿â£¬100% ÈËÔ±»¥±¸¡£

3. GerritÈëÃÅʵս

Gerrit²¿ÊðºÍÔËÐÐ

JDK»·¾³ÅäÖãº

java -jar gerrit-2.12.war init -d review_site

GerritÈËÔ±½ÇÉ«ÅäÖÃ

ʹÓÃOpenIDµÇ¼£¬µÚÒ»¸öµÇ¼µÄÓû§Îªadmin£¬´´½¨devÕʺš¢reviewÕʺźÍverifyÕʺţ¬´´½¨dev¡¢reviewºÍverifyÓû§×é²¢Ìí¼ÓÏàÓ¦Óû§£¬×¢ÒâÉèÖÃUsername£¬´úÂëͬ²½Ê±ÐèÒªÓõ½¡£

´´½¨µÚÒ»¸öÏîÄ¿£¬ÅäÖÃȨÏÞ¹ÜÀí

Ìí¼Óproject£¬Ñ¡Ôñ Inherit From All-Projects£¬µ±È»Ò²¿ÉÒÔ×Ô¶¨ÒåParent Project¡£

Ìí¼ÓVerified±êǩ֧³Ö£¬ÕâÀïÐÞ¸ÄAll-Project ÏîÄ¿µÄproject.config£¬ËùÓм̳Ð×ÔAll-ProjectµÄÏîÄ¿×Ô¶¯Ìí¼ÓVerified ±êÇ©£¬Ò²¿ÉÕë¶ÔÏîÄ¿×Ô¶¨ÒåÊÇ·ñverify¡£

´´½¨Óû§×飺

Ìí¼ÓÏà¹ØÓû§È¨ÏÞ£º

½«´úÂë¿âͬ²½µ½±¾µØ£¨SSH/Http£©

HTTP ·½Ê½£º

HTTP Password ÃÜÂëÔÚ ÕË»§ - ->> Settings ¨C>> HTTP Password ´¦»ñÈ¡¡£

SSH·½Ê½£º

Ìí¼ÓSSH Public Key¡£

Clone´úÂëµ½±¾µØ

commit-msg£¬Ìṩ×Ô¶¯Ð´Èëchange-Id ÖÁgit logÄÚ¹¦ÄÜ¡£

Ìá½»µÚÒ»¸öchange

GerritÉϽøÐдúÂëÉó²é£¬È·ÈÏÈë¿â

Verify£º

¹¤³ÌÀïÃæ½ÓÈëÁËjenkins×Ô¶¯verify£¬½á¹û¿ÉÔÚÉÏͼºì¿òÄÚչʾverify½á¹û¡£

review´úÂ룬Ìá½»Èë¿â¡£

±¾µØ´úÂë¿â¸üУ¬»ñÈ¡×îÐÂÈë¿â´úÂë

´úÂësubmitºóͨ¹ýgit pull - - rebase ¸üдúÂë¡£

GerritÈëÃÅʵս-³õ¼¶ÐÞ²¹

Èç¹ûËùÓдúÂëÌá½»¾ù±»´ò»Ø£¬¿ÉÒÔ½øÐб©Á¦»Ø¹ö£ºgit reset £¬½Ó×ÅÖØÐÂÌá½»Gerrit£¬ÔÙ½øÐÐGerritÉó²éÈë¿â¡£

GerritÈëÃÅʵս-¸ß¼¶ÐÞ²¹

Èç¹ûµ¥¸öÌá½»´ò»Ø£¬Ôò¿É½»»¥Ê½»Ø¹ö£ºgit rebase -i £¬ÐÞ¸ÄÖ¸¶¨commitµã£ºgit commit ¨Camend£¬Íê³ÉËùÓÐcommitµã´¦Àí£ºgit rebase ¨Ccontinue£¬È»ºóÖØÐÂÌá½»Gerrit£¬×îºóGerritÉó²éÈë¿â¡£

Rebaseǰ£º

Rebaseºó£º

rebaseÔÚͬһ¸öµãÉÏÐ޸쬲»»á²úÉúÉóºËµã£¬¶à¸öcommitµãͬʱ´æÔÚÊÇÓÈÆäÓÐÓá£

Gerrit¾­Ñé̸

µÚÒ»£¬Git±ðÃû°ó¶¨£¬Ìí¼Ó±ðÃû×ֶΣ¬Í¨¹ýgit review masterÕâÑù¼òµ¥Óï·¨Ìá½»µ½masterÔ´¶Ë·ÖÖ§£¬¿ÉÒÔʡȥºÜ¶à¹¤×÷¡£ÐÞ¸ÄϵͳĿ¼»òÕßÏîĿĿϵÄ.gitconfig Îļþ£¬Ìí¼Ó

Ò²¿Éͨ¹ýgit config ¨Cglobal alias.review ÃüÁîÐ޸ģº

µÚ¶þ£¬¹¤¾ßÖ»ÊÇÒ»²¿·Ö£¬¸üÖØÒªµÄÊÇÈËÓëÈ˵±ÃæµÄ¹µÍ¨½»Á÷£¬´ó¼ÒÌÖÂÛÒ»¸öºÃµÄ½â¾ö·½°¸£¬²ÅÄܸüºÃµÄ½â¾öÎÊÌ⡣ûÓн»Á÷£¬¹¤¾ßÒ²¾ÍʧȥÁËÒâÒå¡£

×îºó£¬¹ØÓÚreview»ýѹÎÊÌ⣬Ҫ±ÜÃâÌá½»»ýѹ£¬´úÂëÉóºË¹ý³ÌÒª¼°Ê±Íê³É£¬±ÜÃâ Code ReviewÁ÷ÓÚÐÎʽ¡£

   
3097 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

WEBÓ¦ÓóÌÐòUIÄ£°æ´úÂë±àд
C# ±àÂë¹æ·¶ºÍ±à³ÌºÃϰ¹ß
ʲôÊÇ·ÀÓùÐÔ±à³Ì
ÉÆÓÚ·ÀÊØ-½¡×³´úÂëµÄ·ÀÓùÐÔ
Visual C++±à³ÌÃüÃû¹æÔò
JavaScript³ÌÐò±àÂë¹æ·¶


Éè¼ÆÄ£Ê½Ô­ÀíÓëÓ¦ÓÃ
´ÓÐèÇó¹ý¶Éµ½Éè¼Æ
Èí¼þÉè¼ÆÔ­ÀíÓëʵ¼ù
ÈçºÎ±àд¸ßÖÊÁ¿´úÂë
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
Èí¼þ¿ª·¢¹ý³ÌÖ¸ÄÏ


ijȫÇòÖªÃûͨÐŹ«Ë¾ ´úÂëÕû½à
ºáºÓµç»ú ÈçºÎ±àд¸ßÖÊÁ¿´úÂë
ij֪Ãû½ðÈÚÈí¼þ·þÎñÉÌ ´úÂëÆÀÉó
¶«Èí¼¯ÍÅ ´úÂëÖØ¹¹
ij½ðÈÚÈí¼þ·þÎñÉÌ ¼¼ÊõÎĵµ
Öдïµçͨ Éè¼ÆÄ£Ê½Ô­ÀíÓëʵ¼ù
·¨¹úµçÐÅ ¼¼ÊõÎĵµ±àдÓë¹ÜÀí