123 lines
30 KiB
Plaintext
123 lines
30 KiB
Plaintext
|
||
|
||
[38;5;12m [39m[38;2;255;187;0m[1m[4mAwesome Code Review [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m (https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)[0m[38;2;255;187;0m[1m[4m (https://github.com/sindresorhus/awesome)[0m
|
||
|
||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mA curated list of tools, articles, books, and any other resource related to [39m[38;5;14m[1mcode review[0m[38;5;12m (https://en.wikipedia.org/wiki/Code_review)[39m
|
||
|
||
[38;5;12mCode review is the systematic examination (sometimes referred to as peer review) of computer source code.[39m
|
||
|
||
[38;2;255;187;0m[4mContents[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAwesome Code Review ![0m[38;5;12mAwesome[39m[38;5;14m[1m (https://github.com/sindresorhus/awesome)[0m[38;5;12m (#awesome-code-review-)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mContents[0m[38;5;12m (#contents)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAcademic Papers[0m[38;5;12m (#academic-papers)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mArticles[0m[38;5;12m (#articles)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mBooks[0m[38;5;12m (#books)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mTalks and Podcasts[0m[38;5;12m (#talks-and-podcasts)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mTools[0m[38;5;12m (#tools)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mContribute[0m[38;5;12m (#contribute)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLicense[0m[38;5;12m (#license)[39m
|
||
|
||
[38;2;255;187;0m[4mAcademic Papers[0m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mAn[0m[38;5;14m[1m [0m[38;5;14m[1mexperiment[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1massess[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mcost-benefits[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mcode[0m[38;5;14m[1m [0m[38;5;14m[1minspections[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mlarge[0m[38;5;14m[1m [0m[38;5;14m[1mscale[0m[38;5;14m[1m [0m[38;5;14m[1msoftware[0m[38;5;14m[1m [0m[38;5;14m[1mdevelopment[0m[38;5;14m[1m [0m[38;5;14m[1m(Porter,[0m[38;5;14m[1m [0m[38;5;14m[1mSiy,[0m[38;5;14m[1m [0m[38;5;14m[1mToman[0m[38;5;14m[1m [0m[38;5;14m[1m&[0m[38;5;14m[1m [0m[38;5;14m[1mVotta,[0m[38;5;14m[1m [0m[38;5;14m[1m1997)[0m[38;5;12m [39m[38;5;12m(http://laser.cs.umass.edu/courses/cs521-621.Fall10/documents/PorterSiyetal.pdf)[39m[38;5;12m [39m[38;5;12mEarly[39m[38;5;12m [39m[38;5;12mpaper[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mtested[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m
|
||
[38;5;12mrange[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthen-current[39m[38;5;12m [39m[38;5;12mreview[39m[38;5;12m [39m[38;5;12mtechniques[39m[38;5;12m [39m[38;5;12mincluding[39m[38;5;12m [39m[38;5;12mmulti-stage[39m[38;5;12m [39m[38;5;12mreview[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcode-review-via-meeting[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mfound[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mget[39m[38;5;12m [39m[38;5;12mmost[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbenefit[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12moffline,[39m[38;5;12m [39m[38;5;12msingle[39m[38;5;12m [39m[38;5;12mpass,[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mtwo[39m[38;5;12m [39m[38;5;12mreviewers.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mAnywhere,[0m[38;5;14m[1m [0m[38;5;14m[1manytime[0m[38;5;14m[1m [0m[38;5;14m[1mcode[0m[38;5;14m[1m [0m[38;5;14m[1minspections:[0m[38;5;14m[1m [0m[38;5;14m[1musing[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mWeb[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mremove[0m[38;5;14m[1m [0m[38;5;14m[1minspection[0m[38;5;14m[1m [0m[38;5;14m[1mbottlenecks[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mlarge-scale[0m[38;5;14m[1m [0m[38;5;14m[1msoftware[0m[38;5;14m[1m [0m[38;5;14m[1mdevelopment[0m[38;5;14m[1m [0m[38;5;14m[1m(Perpich,[0m[38;5;14m[1m [0m[38;5;14m[1mPerry,[0m[38;5;14m[1m [0m[38;5;14m[1mPorter,[0m[38;5;14m[1m [0m[38;5;14m[1mVotta[0m[38;5;14m[1m [0m[38;5;14m[1m&[0m[38;5;14m[1m [0m[38;5;14m[1mWade,[0m[38;5;14m[1m [0m[38;5;14m[1m1997)[0m[38;5;12m [39m[38;5;12m(https://dl.acm.org/citation.cfm?id=253234)[39m[38;5;12m [39m[38;5;12mOne[39m[38;5;12m [39m[38;5;12mday[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfar[39m[38;5;12m [39m[38;5;12mfuture[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbest[39m[38;5;12m [39m
|
||
[38;5;12mway[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mreview[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mwill[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mworld[39m[38;5;12m [39m[38;5;12mwide[39m[38;5;12m [39m[38;5;12mweb.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCharacteristics[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mUseful[0m[38;5;14m[1m [0m[38;5;14m[1mCode[0m[38;5;14m[1m [0m[38;5;14m[1mReviews:[0m[38;5;14m[1m [0m[38;5;14m[1mAn[0m[38;5;14m[1m [0m[38;5;14m[1mEmpirical[0m[38;5;14m[1m [0m[38;5;14m[1mStudy[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mMicrosoft[0m[38;5;14m[1m [0m[38;5;14m[1m(Bosu,[0m[38;5;14m[1m [0m[38;5;14m[1mGreiler,[0m[38;5;14m[1m [0m[38;5;14m[1mBird,[0m[38;5;14m[1m [0m[38;5;14m[1m2015)[0m[38;5;12m [39m[38;5;12m(https://www.michaelagreiler.com/wp-content/uploads/2019/02/Characteristics-Of-Useful-Comments.pdf)[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mpaper[39m[38;5;12m [39m[38;5;12mreports[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfindings[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlarge[39m[38;5;12m [39m
|
||
[38;5;12mscale[39m[38;5;12m [39m[38;5;12mqualitative[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mquantitative[39m[38;5;12m [39m[38;5;12mstudy[39m[38;5;12m [39m[38;5;12mfocusing[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12munderstanding[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mreview[39m[38;5;12m [39m[38;5;12mcomments[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mconsidered[39m[38;5;12m [39m[38;5;12museful[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mdevelopers.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCode[0m[38;5;14m[1m [0m[38;5;14m[1mReviewing[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mTrenches:[0m[38;5;14m[1m [0m[38;5;14m[1mUnderstanding[0m[38;5;14m[1m [0m[38;5;14m[1mChallenges,[0m[38;5;14m[1m [0m[38;5;14m[1mBest[0m[38;5;14m[1m [0m[38;5;14m[1mPractices,[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mTool[0m[38;5;14m[1m [0m[38;5;14m[1mNeeds[0m[38;5;14m[1m [0m[38;5;14m[1m(MacLeod,[0m[38;5;14m[1m [0m[38;5;14m[1mGreiler,[0m[38;5;14m[1m [0m[38;5;14m[1mStorey,[0m[38;5;14m[1m [0m[38;5;14m[1mBird,[0m[38;5;14m[1m [0m[38;5;14m[1mCzerwonka,[0m[38;5;14m[1m [0m[38;5;14m[1m2018)[0m[38;5;12m [39m
|
||
[38;5;12m(https://www.michaelagreiler.com/wp-content/uploads/2019/03/Code-Reviewing-in-the-Trenches-Understanding-Challenges-Best-Practices-and-Tool-Needs.pdf)[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mlarge[39m[38;5;12m [39m[38;5;12mscale[39m[38;5;12m [39m[38;5;12mstudy[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mover[39m[38;5;12m [39m[38;5;12m900[39m[38;5;12m [39m[38;5;12mMicrosoft[39m[38;5;12m [39m[38;5;12mdevelopers[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12munderstand[39m[38;5;12m [39m[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mreview[39m[38;5;12m [39m[38;5;12mprocesses,[39m
|
||
[38;5;12mtheir[39m[38;5;12m [39m[38;5;12mmotivations[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mdo[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mreviews,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mpitfalls[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mbest[39m[38;5;12m [39m[38;5;12mpractices[39m[38;5;12m [39m[38;5;12mthey[39m[38;5;12m [39m[38;5;12mencounter.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mDesign[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mCode[0m[38;5;14m[1m [0m[38;5;14m[1mInspections[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mReduce[0m[38;5;14m[1m [0m[38;5;14m[1mErrors[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mProgram[0m[38;5;14m[1m [0m[38;5;14m[1mDevelopment[0m[38;5;14m[1m [0m[38;5;14m[1m(Fagan,[0m[38;5;14m[1m [0m[38;5;14m[1m2002)[0m[38;5;12m [39m[38;5;12m(https://link.springer.com/chapter/10.1007/978-3-642-59412-0_35)[39m[38;5;12m [39m[38;5;12mUsing[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mformal[39m[38;5;12m [39m[38;5;12mprocess,[39m[38;5;12m [39m[38;5;12mparticularly[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mdefined[39m[38;5;12m [39m[38;5;12mroles[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12meach[39m[38;5;12m [39m[38;5;12mparticipant[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mdrive[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mbig[39m
|
||
[38;5;12mincrease[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12merror[39m[38;5;12m [39m[38;5;12mdetection[39m[38;5;12m [39m[38;5;12mduring[39m[38;5;12m [39m[38;5;12mreview.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mHelping[0m[38;5;14m[1m [0m[38;5;14m[1mDevelopers[0m[38;5;14m[1m [0m[38;5;14m[1mHelp[0m[38;5;14m[1m [0m[38;5;14m[1mThemselves:[0m[38;5;14m[1m [0m[38;5;14m[1mAutomatic[0m[38;5;14m[1m [0m[38;5;14m[1mDecomposition[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mCode[0m[38;5;14m[1m [0m[38;5;14m[1mReview[0m[38;5;14m[1m [0m[38;5;14m[1mChanges[0m[38;5;14m[1m [0m[38;5;14m[1m(Barnett[0m[38;5;14m[1m [0m[38;5;14m[1met[0m[38;5;14m[1m [0m[38;5;14m[1mal.[0m[38;5;14m[1m [0m[38;5;14m[1m2015)[0m[38;5;12m [39m[38;5;12m(http://research.microsoft.com/pubs/238937/barnett2015hdh.pdf)[39m[38;5;12m [39m[38;5;12m([39m[38;5;14m[1msummary[0m[38;5;14m[1m [0m[38;5;14m[1mon[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mmorning[0m[38;5;14m[1m [0m[38;5;14m[1mpaper[0m[38;5;12m [39m
|
||
[38;5;12m(https://blog.acolyer.org/2015/06/26/helping-developers-help-themselves-automatic-decomposition-of-code-review-changes/))[39m[38;5;12m [39m[38;5;12mResearch[39m[38;5;12m [39m[38;5;12minto[39m[38;5;12m [39m[38;5;12mautomatically[39m[38;5;12m [39m[38;5;12msplitting[39m[38;5;12m [39m[38;5;12mbig[39m[38;5;12m [39m[38;5;12mdiffs[39m[38;5;12m [39m[38;5;12minto[39m[38;5;12m [39m[38;5;12msmaller[39m[38;5;12m [39m[38;5;12mdiffs[39m[38;5;12m [39m[38;5;12mleading[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbetter[39m[38;5;12m [39m[38;5;12mreviews.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mModern Code Review: A Case Study at Google[0m[38;5;12m (https://sback.it/publications/icse2018seip.pdf) A study that shows how code reviews work at Google.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mWork[0m[38;5;14m[1m [0m[38;5;14m[1mPractices[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mChallenges[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mPull-Based[0m[38;5;14m[1m [0m[38;5;14m[1mDevelopment[0m[38;5;14m[1m [0m[38;5;14m[1m(Gousios[0m[38;5;14m[1m [0m[38;5;14m[1met[0m[38;5;14m[1m [0m[38;5;14m[1mal.[0m[38;5;14m[1m [0m[38;5;14m[1m2015)[0m[38;5;12m [39m[38;5;12m(https://sback.it/publications/icse2016b.pdf)[39m[38;5;12m [39m[38;5;12m([39m[38;5;14m[1msummary[0m[38;5;14m[1m [0m[38;5;14m[1mon[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mmorning[0m[38;5;14m[1m [0m[38;5;14m[1mpaper[0m[38;5;12m [39m
|
||
[38;5;12m(https://blog.acolyer.org/2015/06/23/work-practices-and-challenges-in-pull-based-development/))[39m[38;5;12m [39m[38;5;12mField[39m[38;5;12m [39m[38;5;12mstudy[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mGitHub[39m[38;5;12m [39m[38;5;12mpull[39m[38;5;12m [39m[38;5;12mrequests[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mwild.[39m
|
||
|
||
[38;2;255;187;0m[4mArticles[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1m8 Tips for Great Code Reviews[0m[38;5;12m (https://kellysutton.com/2018/10/08/8-tips-for-great-code-reviews.html) A few basic rules for a better code review process.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mA Better Code Review[0m[38;5;12m (https://www.giladpeleg.com/blog/better-code-review/) Decent set of patterns and anti-patterns for code reviews.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mA Zen Manifesto for Effective Code Reviews[0m[38;5;12m (https://medium.freecodecamp.org/a-zen-manifesto-for-effective-code-reviews-e30b5c95204a) Practical tips for the submitter and the reviewer to make effective code reviews.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mBrian Guthrie's Feature Branching Rant[0m[38;5;12m (https://twitter.com/bguthrie/status/937750796334174209) Twitter thread on the pros and cons of GitHub's open source first model with regards to "in-company" code review practice.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mBuilding an Inclusive Code Review Culture[0m[38;5;12m (https://blog.plaid.com/building-an-inclusive-code-review-culture/) Guidelines to help ensure a collaborative and learning culture[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCode Review: Create The Culture, Learn The Best Practices[0m[38;5;12m (https://codingsans.com/blog/code-review) Code review tips and best practices from tech leaders.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCode Review Etiquette[0m[38;5;12m (https://css-tricks.com/code-review-etiquette/) A few tips helping with positive engagement on code review.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCode Review Guidelines for Humans[0m[38;5;12m (https://phauer.com/2018/code-review-guidelines/) Some guidelines for giving and getting code reviews.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCode Reviews: Just Do It[0m[38;5;12m (https://blog.codinghorror.com/code-reviews-just-do-it/) Seminal post advocating for peer review of software back in 2006.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCode Reviews at Google are lightweight and fast[0m[38;5;12m (https://www.michaelagreiler.com/code-reviews-at-google/) Details on how code review best practices and processes work at Google.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCode Review Review is the Manager's Job[0m[38;5;12m (https://hecate.co/blog/code-review-review-is-the-managers-job) Why management should ensure code review is done and done well.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mComments During Code Reviews[0m[38;5;12m (https://medium.com/@otarutunde/comments-during-code-reviews-2cb7791e1ac7) Writing good comments during code reviews.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mDesigning Awesome Code Reviews[0m[38;5;12m (https://medium.com/unpacking-trunk-club/designing-awesome-code-reviews-5a0d9cd867e3) Principles for actively designing a code review process.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mEffective Code Reviews Without the Pain[0m[38;5;12m (https://www.developer.com/tech/article.php/3579756/Effective-Code-Reviews-Without-the-Pain.htm) Another 2006 classic on how to effectively perform a code review.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mFeedback[0m[38;5;14m[1m [0m[38;5;14m[1mLadders:[0m[38;5;14m[1m [0m[38;5;14m[1mHow[0m[38;5;14m[1m [0m[38;5;14m[1mWe[0m[38;5;14m[1m [0m[38;5;14m[1mEncode[0m[38;5;14m[1m [0m[38;5;14m[1mCode[0m[38;5;14m[1m [0m[38;5;14m[1mReviews[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mNetlify[0m[38;5;12m [39m[38;5;12m(https://www.netlify.com/blog/2020/03/05/feedback-ladders-how-we-encode-code-reviews-at-netlify/)[39m[38;5;12m [39m[38;5;12mHelpful[39m[38;5;12m [39m[38;5;12mframwork[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mreviewers[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mclassify[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mactionable[39m[38;5;12m [39m[38;5;12mspecific[39m[38;5;12m [39m[38;5;12mpieces[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mreview[39m[38;5;12m [39m
|
||
[38;5;12mfeedback[39m[38;5;12m [39m[38;5;12mare.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mHow Code Reviews work at Microsoft[0m[38;5;12m (https://www.michaelagreiler.com/code-reviews-at-microsoft-how-to-code-review-at-a-large-software-company/) A in-depth analysis on how the code review process looks like at Microsoft.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mHow I review code[0m[38;5;12m (https://engineering.tumblr.com/post/170040992289/how-i-review-code) More personal advice on how to best review a pull request from an engineer at Tumblr.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mHow to do a code review[0m[38;5;12m (https://google.github.io/eng-practices/review/reviewer/) A thorough description of how Google engineers do code reviews, from the Google's Engineering Practices documentation.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mHow to Do Code Reviews Like a Human[0m[38;5;12m (https://mtlynch.io/human-code-reviews-1/) Techniques that treat the code review as not only a technical process but a social one as well.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mModern Code Reviews[0m[38;5;12m (https://rethought.se/research/modern-code-reviews/) Arguably belongs in academic paper, but it's a website giving an overview of evidence on code review by facet/context. Links off to a bunch of papers.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mOn Code Review[0m[38;5;12m (https://medium.com/@schrockn/on-code-reviews-b1c7c94d868c) Short article about tooling and personal elements of code review, from an ex-Facebook engineer.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPull Requests: How to Get and Give Good Feedback[0m[38;5;12m (https://kickstarter.engineering/pull-requests-how-to-get-and-give-good-feedback-f573469f0c44) Advice for both sides of the code review process, the reviewer and the reviewee.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mShip Small Diffs[0m[38;5;12m (https://blog.skyliner.io/ship-small-diffs-741308bec0d1) Why it's better to review small changes rather than large ones.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mStacked Pull Requests: Keeping GitHub Diffs Small[0m[38;5;12m (https://graysonkoonce.com/stacked-pull-requests-keeping-github-diffs-small/) A step-by-step process to split big PRs and increase review engagement.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mThe Art of Humanizing Pull Requests[0m[38;5;12m (https://blog.usejournal.com/the-art-of-humanizing-pull-requests-prs-b520588eb345) Emoji rich guide to the human side of code review via pull requests.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mTowards Productive Technical Discussions[0m[38;5;12m (https://cate.blog/2018/07/03/towards-productive-technical-discussions/) Tactical questions and actions to push code review discussions into a more productive territory.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mUnlearning Toxic Behaviors in a Code Review Culture[0m[38;5;12m (https://medium.com/@sandya.sankarram/unlearning-toxic-behaviors-in-a-code-review-culture-b7c295452a3c) A how-to guide for pull requests via how-not-too.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mWhy I changed the way I think about Code Quality[0m[38;5;12m (https://medium.freecodecamp.org/why-i-changed-the-way-i-think-about-code-quality-88c5d8d57e68) Why code quality is about more than just the code.[39m
|
||
|
||
[38;2;255;187;0m[4mBooks[0m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mBest[0m[38;5;14m[1m [0m[38;5;14m[1mKept[0m[38;5;14m[1m [0m[38;5;14m[1mSecrets[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mPeer[0m[38;5;14m[1m [0m[38;5;14m[1mCode[0m[38;5;14m[1m [0m[38;5;14m[1mReview[0m[38;5;12m [39m[38;5;12m(https://www.goodreads.com/book/show/1563457.Best_Kept_Secrets_of_Peer_Code_Review)[39m[38;5;12m [39m[38;5;12mOlder[39m[38;5;12m [39m[38;5;12mcompilation[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12m10[39m[38;5;12m [39m[38;5;12messays[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpractice[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mreviews.[39m[38;5;12m [39m[38;5;12mSome[39m[38;5;12m [39m[38;5;12mrepetition[39m[38;5;12m [39m[38;5;12mdue[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12mauthors[39m[38;5;12m [39m[38;5;12mcovering[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msame[39m
|
||
[38;5;12mterritory.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mHandbook[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mWalkthroughs,[0m[38;5;14m[1m [0m[38;5;14m[1mInspections,[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mTechnical[0m[38;5;14m[1m [0m[38;5;14m[1mReviews[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/Handbook-Walkthroughs-Inspections-Technical-Reviews/dp/0932633196)[39m[38;5;12m [39m[38;5;12mOlder[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mcovering[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mformal[39m[38;5;12m [39m[38;5;12mwalkthroughs[39m[38;5;12m [39m[38;5;12mbut[39m[38;5;12m [39m[38;5;12mcovers[39m[38;5;12m [39m[38;5;12mpolitics[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mgroup[39m[38;5;12m [39m[38;5;12mdynamics[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m
|
||
[38;5;12mreview[39m[38;5;12m [39m[38;5;12mwell.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPeer Reviews in Software: A Practical Guide[0m[38;5;12m (https://www.amazon.com/Peer-Reviews-Software-Practical-Guide/dp/0201734850) A practical guide to formal code inspections as a code review practice.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSoftware Inspection: An Industry Best Practice[0m[38;5;12m (https://www.amazon.com/Software-Inspection-Industry-Best-Practice/dp/0818673400) Compendium of papers on code review practice.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mUltimate Guide to Code Reviews[0m[38;5;12m (https://www.codacy.com/ebooks/guide-to-code-reviews) Codacy sponsored ebook of code review practices based on developer survey.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mWhat to Look for in a Code Review[0m[38;5;12m (https://leanpub.com/whattolookforinacodereview) JetBrains sponsored ebook of how to spot coding anti-patterns during review.[39m
|
||
|
||
[38;2;255;187;0m[4mTalks and Podcasts[0m
|
||
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mCode[0m[38;5;14m[1m [0m[38;5;14m[1mReviews:[0m[38;5;14m[1m [0m[38;5;14m[1mHonesty,[0m[38;5;14m[1m [0m[38;5;14m[1mKindness,[0m[38;5;14m[1m [0m[38;5;14m[1mInspiration:[0m[38;5;14m[1m [0m[38;5;14m[1mPick[0m[38;5;14m[1m [0m[38;5;14m[1mThree[0m[38;5;14m[1m [0m[38;5;14m[1m-[0m[38;5;14m[1m [0m[38;5;14m[1mJacob[0m[38;5;14m[1m [0m[38;5;14m[1mStoebel[0m[38;5;14m[1m [0m[38;5;14m[1mRubyConf[0m[38;5;14m[1m [0m[38;5;14m[1m2017[0m[38;5;12m [39m[38;5;12m(http://confreaks.tv/videos/rubyconf2017-code-reviews-honesty-kindness-inspiration-pick-three)[39m[38;5;12m [39m[38;5;12mHow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mdo[39m[38;5;12m [39m[38;5;12meffective[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mreview[39m[38;5;12m [39m[38;5;12mwhile[39m[38;5;12m [39m[38;5;12mremaining[39m[38;5;12m [39m[38;5;12mkind[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m
|
||
[38;5;12moriginal[39m[38;5;12m [39m[38;5;12mauthor.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mGoldilocks and the Three Code Reviews - Vaidehi Joshi RedDot Ruby Conf 2017[0m[38;5;12m (https://confreaks.tv/videos/reddotrubyconf2017-goldilocks-and-the-three-code-reviews) Finding just the right amount of code review by focussing on what is affecting.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mImplementing a Strong Code-Review Culture - Derek Prior Railsconf 2015[0m[38;5;12m (https://www.youtube.com/watch?v=PJjmw9TRB7s) How to instill a healthy code review culture in a team.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mMichaela[0m[38;5;14m[1m [0m[38;5;14m[1mGreiler[0m[38;5;14m[1m [0m[38;5;14m[1mon[0m[38;5;14m[1m [0m[38;5;14m[1mCode[0m[38;5;14m[1m [0m[38;5;14m[1mReviews[0m[38;5;14m[1m [0m[38;5;14m[1m-[0m[38;5;14m[1m [0m[38;5;14m[1mSE[0m[38;5;14m[1m [0m[38;5;14m[1mRadio[0m[38;5;14m[1m [0m[38;5;14m[1m2020[0m[38;5;12m [39m[38;5;12m(https://www.se-radio.net/2020/02/episode-400-michaela-greiler-on-code-reviews/)[39m[38;5;12m [39m[38;5;12mMichaela[39m[38;5;12m [39m[38;5;12mGreiler[39m[38;5;12m [39m[38;5;12mdiscusses[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mimportance[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mreviews[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mconduct[39m[38;5;12m [39m[38;5;12mthem[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mSoftware[39m[38;5;12m [39m[38;5;12mEngineering[39m[38;5;12m [39m
|
||
[38;5;12mRadio[39m[38;5;12m [39m[38;5;12mpodcast.[39m
|
||
|
||
[38;2;255;187;0m[4mTools[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mAxolo[0m[38;5;12m (https://www.axolo.co) Github/GitLab Slack integration. Create one ephemeral channel per pull request/ merge request.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCrucible[0m[38;5;12m (https://www.atlassian.com/software/crucible) Atlassian's on-premise code review tool.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mGerrit[0m[38;5;12m (https://www.gerritcodereview.com/) Open source git code review tool originating out of Google.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mGitHub[0m[38;5;12m (https://github.com) Git hosting and pioneer of the "Pull Request".[39m
|
||
[38;5;12m- [39m[38;5;14m[1mGitpod[0m[38;5;12m (https://gitpod.io) Code review pull requests in a full IDE within your browser.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mLGTM[0m[38;5;12m (https://lgtm.com) Automated Git code review for GitHub and Bitbucket pull requests for finding security vulnerabilities and code quality issues.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPhabricator[0m[38;5;12m (https://www.phacility.com/phabricator/) Open source git/mercurial/svn code review tool originating out of Facebook.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPullNotifier[0m[38;5;12m (https://www.pullnotifier.com/) Improve pull request visibility and overall productivity for dev teams using Github and Slack.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPullRequest[0m[38;5;12m (https://www.pullrequest.com/) Code review as a service for GitHub pull requests.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mReviewable[0m[38;5;12m (https://reviewable.io/) Code review tool built on top of GitHub pull requests.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mReview Board[0m[38;5;12m (https://www.reviewboard.org/) Open source review tool that is SCM/platform neutral.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSider[0m[38;5;12m (https://sider.review/) Automated code review service for GitHub.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSoftagram[0m[38;5;12m (https://softagram.com/) Automated code change visualization (and dependency analytics) for pull requests, merge requests (GitLab) and patch sets (Gerrit).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSonarCloud[0m[38;5;12m (https://sonarcloud.io) Detect code smells, bugs and vulnerabilities in Azure DevOps, Bitbucket and GitHub repositories.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mUpsource[0m[38;5;12m (https://www.jetbrains.com/upsource/) JetBrain's on-premise git/mercurial/perforce/svn code review tool.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mViezly[0m[38;5;12m (https://viezly.com) Code review service with pull request visualization and enhanced navigation between changes.[39m
|
||
|
||
[38;2;255;187;0m[4mContribute[0m
|
||
|
||
[38;5;12mContributions welcome! Read the [39m[38;5;14m[1mcontribution guidelines[0m[38;5;12m (contributing.md) first.[39m
|
||
|
||
[38;2;255;187;0m[4mLicense[0m
|
||
|
||
[38;5;14m[1m![0m[38;5;12mCC0[39m[38;5;14m[1m (http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)[0m[38;5;12m (http://creativecommons.org/publicdomain/zero/1.0)[39m
|
||
|
||
[38;5;12mTo the extent possible under law, [39m[38;5;14m[1mJohn Barton[0m[38;5;12m (https://johnbarton.co) has waived all copyright and[39m
|
||
[38;5;12mrelated or neighboring rights to this work.[39m
|
||
|
||
[38;5;12mcodereview Github: https://github.com/joho/awesome-code-review[39m
|