1 00:00:07,210 --> 00:00:10,250 [Powered by Google Translate] En aquest vídeo, parlarem d'estil de codi, que és una cosa 2 00:00:10,250 --> 00:00:12,240 que és proper i estimat al meu cor. 3 00:00:12,240 --> 00:00:15,190 Estil descriu com el codi està formatat, la qual cosa és 4 00:00:15,190 --> 00:00:18,030 independent del que el codi fa realment. 5 00:00:18,030 --> 00:00:21,470 No només va a aconseguir un bon estil que una millor qualificació al CS50, 6 00:00:21,470 --> 00:00:23,830 sinó que també l'ajudarà a escriure codi que és molt més 7 00:00:23,830 --> 00:00:26,680 llegible i fàcil de mantenir, que, al final de la dia, 8 00:00:26,680 --> 00:00:29,200 es farà la vida molt més fàcil. 9 00:00:29,200 --> 00:00:31,810 >> Els tres components principals de l'estil de codi que es discutiran 10 00:00:31,810 --> 00:00:34,500 aquest vídeo són els comentaris, el format, 11 00:00:34,500 --> 00:00:35,750 i variables noms. 12 00:00:35,750 --> 00:00:37,350 Anem a començar amb comentaris. 13 00:00:37,350 --> 00:00:40,020 Recordeu, els comentaris no tenen cap efecte sobre la 14 00:00:40,020 --> 00:00:41,770 funcionalitat del codi. 15 00:00:41,770 --> 00:00:45,650 Només serveixen com consells útils per a nosaltres com a programadors. 16 00:00:45,650 --> 00:00:48,680 Bons comentaris han de respondre a una de les dues preguntes. 17 00:00:48,680 --> 00:00:52,140 >> En primer lloc, què significa aquest bloc de codi? 18 00:00:52,140 --> 00:00:54,890 Aquesta és una descripció breu i dolç de la finalitat de 19 00:00:54,890 --> 00:00:56,500 Les línies que segueixen. 20 00:00:56,500 --> 00:00:59,330 Per exemple, pot ser que hagi de trobar el lloc on es 21 00:00:59,330 --> 00:01:01,450 implementat una característica particular de fixar un 22 00:01:01,450 --> 00:01:02,990 bug o alguna cosa pel canvi. 23 00:01:02,990 --> 00:01:06,060 Sense comentaris, pot ser que hagi d'estudiar minuciosament moltes línies de 24 00:01:06,060 --> 00:01:09,550 codi tractant d'esbrinar exactament on aquesta característica és. 25 00:01:09,550 --> 00:01:11,990 O si han passat uns dies des que et va mirar a un 26 00:01:11,990 --> 00:01:14,820 seus programes, és possible que no recordi el que un determinat 27 00:01:14,820 --> 00:01:16,580 funció o bucle fa. 28 00:01:16,580 --> 00:01:18,840 Així farà comentaris familiarizándome de nou a tu mateix amb 29 00:01:18,840 --> 00:01:21,530 Codi d'edat, o donar a conèixer a si mateix amb una altra persona 30 00:01:21,530 --> 00:01:23,700 codi, molt més suau. 31 00:01:23,700 --> 00:01:26,640 La segona pregunta es respon un bon comentari és per què ho vaig fer 32 00:01:26,640 --> 00:01:29,100 implementar aquest bloc d'aquesta manera? 33 00:01:29,100 --> 00:01:30,960 En escriure codi, sovint necessitarà 34 00:01:30,960 --> 00:01:32,650 per prendre decisions de disseny. 35 00:01:32,650 --> 00:01:35,210 Haig de fer servir un bucle while o bucle aquí? 36 00:01:35,210 --> 00:01:38,080 He de fer aquest bloc de codi en una funció separada? 37 00:01:38,080 --> 00:01:40,650 L'ús de comentaris, pot documentar el seu disseny 38 00:01:40,650 --> 00:01:43,650 decisiones, el que farà que el seu codi sigui més fàcil d'entendre 39 00:01:43,650 --> 00:01:46,390 per a altres, que poden estar preguntant exactament el mateix 40 00:01:46,390 --> 00:01:48,690 qüestions de disseny, ja que llegir el codi. 41 00:01:48,690 --> 00:01:51,430 O fins i tot a tu mateix, si tornes a un bloc de codi després de 42 00:01:51,430 --> 00:01:53,200 algun període de temps. 43 00:01:53,200 --> 00:01:56,110 >> En C, i les altres llengües que veurem al CS50, hi ha 44 00:01:56,110 --> 00:01:59,660 dues maneres d'afegir comentaris al seu codi, comentaris en línia 45 00:01:59,660 --> 00:02:01,970 i els comentaris de diverses línies. 46 00:02:01,970 --> 00:02:05,300 Comentaris en línia són excel · lents per documentar peces de codi 47 00:02:05,300 --> 00:02:06,680 dins de les funcions. 48 00:02:06,680 --> 00:02:09,250 Per exemple, un comentari en línia podria descriure la 49 00:02:09,250 --> 00:02:12,680 fi d'un bucle for o un cas extrem que requereix 50 00:02:12,680 --> 00:02:14,030 una condició. 51 00:02:14,030 --> 00:02:17,450 Comentaris de diverses línies són excel · lents per documentar les funcions. 52 00:02:17,450 --> 00:02:19,830 Cada vegada que s'escriu una funció, ha de sempre, sempre, 53 00:02:19,830 --> 00:02:23,190 sempre documentar el que fa amb un comentari. 54 00:02:23,190 --> 00:02:25,980 Això inclou el que les entrades de la funció són, quin és el 55 00:02:25,980 --> 00:02:28,740 sortida de la funció és, i potser per què la funció és 56 00:02:28,740 --> 00:02:31,100 implementat en la forma en què ho és. 57 00:02:31,100 --> 00:02:33,540 Cada vegada que canviï la signatura d'una funció, torni 58 00:02:33,540 --> 00:02:36,840 valor, o l'aplicació, és important actualitzar també la 59 00:02:36,840 --> 00:02:39,420 comentari de documentació corresponent. 60 00:02:39,420 --> 00:02:41,650 La manca de concordança entre els comentaris de la funció i 61 00:02:41,650 --> 00:02:45,360 implementació pot ser molt confús per als lectors. 62 00:02:45,360 --> 00:02:48,670 De la mateixa manera, la creació d'un comentari de diverses línies a la part superior 63 00:02:48,670 --> 00:02:52,180 de cada c. o. arxiu s'escriu h, descrivint el que l' 64 00:02:52,180 --> 00:02:55,090 arxiu és, és també una molt bona idea. 65 00:02:55,090 --> 00:02:58,000 >> A mesura que estàs comentant el seu codi, una de les primeres preguntes que vostè 66 00:02:58,000 --> 00:03:01,800 podria haver és, bé, quant he de comentar el meu codi? 67 00:03:01,800 --> 00:03:04,260 Sovint és necessari documentar cada 68 00:03:04,260 --> 00:03:06,040 sola línia de codi. 69 00:03:06,040 --> 00:03:09,850 Per exemple, una línia que diu int x = 5 no necessita una 70 00:03:09,850 --> 00:03:13,110 comentar sobre el que diu "set x 5". 71 00:03:13,110 --> 00:03:16,260 No comentar prou, tot i que, com hem vist, pot fer 72 00:03:16,260 --> 00:03:18,840 la comprensió del seu codi molt difícil. 73 00:03:18,840 --> 00:03:21,860 Així que una bona regla d'or és per comentar blocs interessants de 74 00:03:21,860 --> 00:03:25,700 codi, on un bloc consisteix en una poques línies relacionades. 75 00:03:25,700 --> 00:03:27,610 >> Així que donem una ullada a un exemple. 76 00:03:27,610 --> 00:03:29,695 Aquí està una funció de C sense comentaris. 77 00:03:32,670 --> 00:03:36,070 D'acord, ja que aquesta és una funció, el primer que hem d'afegir 78 00:03:36,070 --> 00:03:38,560 és un comentari que explica el que les entrades de la funció 79 00:03:38,560 --> 00:03:40,440 és i el que fa. 80 00:03:40,440 --> 00:03:43,800 Així que anem a inserir un comentari de diverses línies. 81 00:03:43,800 --> 00:03:44,500 Gran. 82 00:03:44,500 --> 00:03:47,220 Ara sabem exactament quina és la nostra funció fa. 83 00:03:47,220 --> 00:03:49,530 Anem a afegir alguns comentaris en línia ara. 84 00:03:49,530 --> 00:03:53,260 Podem dividir el nostre codi en dos blocs de línies similars. 85 00:03:53,260 --> 00:03:56,850 Les línies 4 i 5 cordes constructe basat en les aportacions i 86 00:03:56,850 --> 00:03:58,690 línies 6-9 Sortida aquests 87 00:03:58,690 --> 00:04:00,660 cadenes en lletres de cançons. 88 00:04:00,660 --> 00:04:03,860 Així que anem a documentar que amb els seus comentaris. 89 00:04:03,860 --> 00:04:04,470 Awesome. 90 00:04:04,470 --> 00:04:06,440 Ara la nostra funció es comenta. 91 00:04:06,440 --> 00:04:09,270 >> Recordeu que els comentaris en línia no és necessari utilitzar completa 92 00:04:09,270 --> 00:04:11,270 frases o acaben amb un punt. 93 00:04:11,270 --> 00:04:14,780 És important que hi hagi un espai entre la segona barra 94 00:04:14,780 --> 00:04:16,680 i l'inici de l'observació. 95 00:04:16,680 --> 00:04:19,010 Aquesta és la freqüència de les observacions dins dels seus programes 96 00:04:19,010 --> 00:04:21,810 que ha de ser apuntant. 97 00:04:21,810 --> 00:04:25,180 Cal notar aquí com ens separem els dos blocs de codi relacionat 98 00:04:25,180 --> 00:04:28,560 dins la nostra funció cor amb un retorn de carro addicional. 99 00:04:28,560 --> 00:04:31,260 >> Això ens porta al següent component d'estil de codi, 100 00:04:31,260 --> 00:04:32,350 format. 101 00:04:32,350 --> 00:04:34,410 Quan vaig començar a programar, em va colpejar el Enter 102 00:04:34,410 --> 00:04:37,970 clau amb molt poca freqüència, el que va resultar en gegant, il · legible 103 00:04:37,970 --> 00:04:39,250 gotes de codi. 104 00:04:39,250 --> 00:04:41,890 Crec que realment ofès al meu company d'ensenyament, ja que 105 00:04:41,890 --> 00:04:43,610 no estava molt content amb mi. 106 00:04:43,610 --> 00:04:46,620 Visually agrupar blocs de codi relacionada amb el transport 107 00:04:46,620 --> 00:04:50,310 devolucions, pot fer que el seu codi sigui més fàcil descremada i clarament 108 00:04:50,310 --> 00:04:54,020 delinear les línies de codi estan explicant els seus comentaris. 109 00:04:54,020 --> 00:04:57,100 Dit això, estenent el seu codi massa, igual que amb 110 00:04:57,100 --> 00:05:00,020 dues o més línies entre els blocs de codi o funcions, pot 111 00:05:00,020 --> 00:05:02,470 també fan que sigui molt menys llegible. 112 00:05:02,470 --> 00:05:04,230 >> La sagnia és una altra important 113 00:05:04,230 --> 00:05:06,150 aspecte de format de codi. 114 00:05:06,150 --> 00:05:09,410 Sempre, sempre, sempre guió del cos d'una funció, llaç, 115 00:05:09,410 --> 00:05:10,620 o condició. 116 00:05:10,620 --> 00:05:13,410 Això deixa clar que les línies de codi estan dins d'una 117 00:05:13,410 --> 00:05:15,650 bucle, per exemple, i les línies de codi 118 00:05:15,650 --> 00:05:17,980 estan fora d'això. 119 00:05:17,980 --> 00:05:21,290 CS50 recomana guió amb quatre espais, però 120 00:05:21,290 --> 00:05:24,040 si decideix una altra cosa, assegura't de ser coherent 121 00:05:24,040 --> 00:05:25,550 tot el codi. 122 00:05:25,550 --> 00:05:28,640 En aquest sentit, CS50 recomana col · locar claus 123 00:05:28,640 --> 00:05:30,100 en la seva pròpia línia. 124 00:05:30,100 --> 00:05:32,930 D'aquesta manera, els suports s'alinearan visualment a la mateixa esquerra 125 00:05:32,930 --> 00:05:37,200 marge, per la qual cosa és clar com l'aigua, on un bloc comença i acaba. 126 00:05:37,200 --> 00:05:40,760 No obstant això, també és bo per col · locar brackets en la mateixa línia com 127 00:05:40,760 --> 00:05:43,910 condició, per exemple, per conservar espai. 128 00:05:43,910 --> 00:05:46,720 Si ho fa, però, assegureu-vos d'incloure un espai 129 00:05:46,720 --> 00:05:50,200 abans de la clau de tancament pel que no smooshed al costat d'un tancament 130 00:05:50,200 --> 00:05:51,780 parin o una paraula. 131 00:05:51,780 --> 00:05:54,370 >> Qualsevol que triï, el més important és ser 132 00:05:54,370 --> 00:05:57,130 consistent en tot el codi. 133 00:05:57,130 --> 00:05:58,700 El que no volem veure, però, és 134 00:05:58,700 --> 00:06:00,680 sagnia claus. 135 00:06:00,680 --> 00:06:03,120 Si ho fa, fa que els frens semblen desconnectats de la 136 00:06:03,120 --> 00:06:06,100 condició, llaç, o la funció que estan demarcació, per la qual cosa 137 00:06:06,100 --> 00:06:08,150 el codi sigui difícil de llegir. 138 00:06:08,150 --> 00:06:11,190 En C i en els altres idiomes que veurem, les claus són 139 00:06:11,190 --> 00:06:14,150 opcional per les condicions d'una sola línia o bucles. 140 00:06:14,150 --> 00:06:16,790 Està bé per ometre les claus en aquest cas, però si 141 00:06:16,790 --> 00:06:19,200 ho fa, assegureu-vos d'estar d'acord 142 00:06:19,200 --> 00:06:21,350 tot el codi. 143 00:06:21,350 --> 00:06:24,280 >> En la definició de funcions, CS50 recomana escriure el 144 00:06:24,280 --> 00:06:27,440 retornar el tipus de la funció en la mateixa línia que el nom de 145 00:06:27,440 --> 00:06:28,930 la funció. 146 00:06:28,930 --> 00:06:31,900 No obstant això, també és ben escriure el tipus de devolució pel seu compte 147 00:06:31,900 --> 00:06:35,160 línia, la qual cosa pot fer que la definició de funcions fàcils de trobar en 148 00:06:35,160 --> 00:06:36,880 alguns editors de text. 149 00:06:36,880 --> 00:06:39,550 >> Finalment, assegureu-vos d'incloure espais al voltant de 150 00:06:39,550 --> 00:06:41,330 paraules clau i operadors. 151 00:06:41,330 --> 00:06:45,580 Per exemple, una línia que diu int x = 5 és molt més fàcil 152 00:06:45,580 --> 00:06:48,590 llegir si hi ha espais al voltant del signe igual. 153 00:06:48,590 --> 00:06:52,070 De la mateixa manera, assegureu-vos que té un espai abans de paraules com si, 154 00:06:52,070 --> 00:06:53,460 per, i temps. 155 00:06:53,460 --> 00:06:56,270 Sense espai, aquests podrien semblar crides a funcions, 156 00:06:56,270 --> 00:06:57,850 que no ho són. 157 00:06:57,850 --> 00:07:00,600 >> Així que anem a fer una ullada a un exemple de l'aplicació d'un bon estil 158 00:07:00,600 --> 00:07:02,760 a un bloc de codi amb format incorrecte. 159 00:07:08,260 --> 00:07:10,660 Bé, anem a començar des del principi. 160 00:07:10,660 --> 00:07:13,670 Podem veure que la clau d'obertura de la principal està en el mateix 161 00:07:13,670 --> 00:07:15,900 línia com el nom de la funció. 162 00:07:15,900 --> 00:07:18,700 Si fem això, ha d'haver un espai entre 163 00:07:18,700 --> 00:07:22,020 el parèntesi de tancament i clau de la, així. 164 00:07:22,020 --> 00:07:24,960 No obstant això, CS50 recomana que els frens destaquen 165 00:07:24,960 --> 00:07:26,080 en la seva pròpia línia. 166 00:07:26,080 --> 00:07:28,500 Així que farem això. 167 00:07:28,500 --> 00:07:30,830 Ara que estem en el cos de la funció principal, necessitarem 168 00:07:30,830 --> 00:07:33,070 per iniciar sagnia al codi, utilitzarem el 169 00:07:33,070 --> 00:07:34,500 recomanar quatre espais. 170 00:07:45,980 --> 00:07:48,990 A continuació, veiem que no hi ha espai al voltant del signe igual 171 00:07:48,990 --> 00:07:50,510 aquí, així que afegirem això. 172 00:07:53,270 --> 00:07:56,420 Aquí, es veu que no hi ha espai entre el Si i el 173 00:07:56,420 --> 00:07:59,740 obert parèntesi, així que afegirem que, juntament amb l'espai al voltant de 174 00:07:59,740 --> 00:08:01,710 el signe més gran que. 175 00:08:01,710 --> 00:08:04,750 Un cop més, veiem que no hi ha espai entre el parèntesi de tancament i 176 00:08:04,750 --> 00:08:06,430 la clau d'obertura aquí. 177 00:08:06,430 --> 00:08:08,970 Si anem a posar això en la mateixa línia, cal que 178 00:08:08,970 --> 00:08:11,630 ser un espai abans del claudàtor. 179 00:08:11,630 --> 00:08:13,540 No obstant això, sembla que el cos del nostre 180 00:08:13,540 --> 00:08:15,220 condició és només una línia. 181 00:08:15,220 --> 00:08:18,300 Així que no cal incloure les claus en absolut. 182 00:08:18,300 --> 00:08:21,200 Ara hem d'estar segurs de guió en el cos de cada un 183 00:08:21,200 --> 00:08:24,340 les nostres condicions. 184 00:08:24,340 --> 00:08:27,080 Definitivament no vull que aquesta última línia per ser al mateix 185 00:08:27,080 --> 00:08:30,860 línia com els altres, així que prem Enter i guió. 186 00:08:30,860 --> 00:08:34,250 Finalment, la clau de tancament de les principals necessitats per estar en 187 00:08:34,250 --> 00:08:35,760 seva pròpia línia. 188 00:08:35,760 --> 00:08:38,049 >> Podem veure aquí tenim dues diferents 189 00:08:38,049 --> 00:08:40,000 blocs de codi relacionat. 190 00:08:40,000 --> 00:08:43,070 Les línies 4-6 demanarà a l'usuari per a l'entrada i la 191 00:08:43,070 --> 00:08:45,990 les línies restants mostren que l'entrada a l'usuari. 192 00:08:45,990 --> 00:08:49,230 Així que té sentit posar una mica d'espai entre aquests dos blocs 193 00:08:49,230 --> 00:08:50,440 per a major claredat. 194 00:08:50,440 --> 00:08:54,020 I aquí anem, ara el codi és molt més fàcil de llegir amb 195 00:08:54,020 --> 00:08:56,010 bon estil. 196 00:08:56,010 --> 00:08:59,430 >> Finalment, parlarem del nostre tercer component del bon estil: 197 00:08:59,430 --> 00:09:00,880 noms de variables. 198 00:09:00,880 --> 00:09:02,660 Els noms de variables han de descriure el 199 00:09:02,660 --> 00:09:04,730 valor que representen. 200 00:09:04,730 --> 00:09:07,150 Anem a tornar al nostre exemple anterior. 201 00:09:07,150 --> 00:09:10,470 Ampolles és un bon nom descriptiu per a la variable que 202 00:09:10,470 --> 00:09:13,680 representa quantes ampolles es deixen a la paret. 203 00:09:13,680 --> 00:09:21,010 Noms com xo numBots no són molt descriptius i estan 204 00:09:21,010 --> 00:09:24,020 no és bo per a la llegibilitat del codi. 205 00:09:24,020 --> 00:09:26,860 Mentre variables trucades per una sola lletra són comuns en 206 00:09:26,860 --> 00:09:30,100 matemàtiques i altres camps, poden fer que el codi molt dur 207 00:09:30,100 --> 00:09:31,380 d'entendre. 208 00:09:31,380 --> 00:09:33,660 L'excepció a aquesta regla és Iterador 209 00:09:33,660 --> 00:09:35,800 variables dins de bucles. 210 00:09:35,800 --> 00:09:38,260 En els bucles for, per exemple, està bé usar variables 211 00:09:38,260 --> 00:09:42,100 noms com i, j, k i per a la iteració. 212 00:09:42,100 --> 00:09:44,900 Quan es creen les variables Iterador dins dels cicles, és 213 00:09:44,900 --> 00:09:48,200 recomana que ho faci dins el mateix circuit, en lloc 214 00:09:48,200 --> 00:09:51,150 que a l'exterior del bucle, de manera que puguem mantenir variables com 215 00:09:51,150 --> 00:09:53,860 hermèticament àmbit del possible. 216 00:09:53,860 --> 00:10:02,660 >> D'altra banda, un nom de variable com nombre d'ampolles 217 00:10:02,660 --> 00:10:10,710 a l'esquerra a la paret és, mentre descriptiva, massa detallat 218 00:10:10,710 --> 00:10:12,780 i no és necessari. 219 00:10:12,780 --> 00:10:15,150 En l'esdeveniment que voleu crear una variable amb 220 00:10:15,150 --> 00:10:18,990 diverses paraules, separar les paraules amb guions baixos. 221 00:10:18,990 --> 00:10:28,920 Per exemple, is_ready és molt més llegible que isReady. 222 00:10:28,920 --> 00:10:32,240 Està bé per declarar múltiples variables en la mateixa línia. 223 00:10:32,240 --> 00:10:36,350 Però si ho fa, no inicialitzar algunes variables, però 224 00:10:36,350 --> 00:10:37,610 no altres. 225 00:10:37,610 --> 00:10:45,840 Això vol dir alguna cosa així com monedes de deu centaus, centaus int 226 00:10:45,840 --> 00:10:48,080 punt i coma, està bé. 227 00:10:48,080 --> 00:10:57,610 Però int = 0, monedes de deu centaus centaus 228 00:10:57,610 --> 00:11:00,120 punt i coma no ho és. 229 00:11:00,120 --> 00:11:02,830 >> Finalment, en declarar punters, es recomana 230 00:11:02,830 --> 00:11:06,430 que es col · loca l'asterisc al costat de tipus del punter, no 231 00:11:06,430 --> 00:11:07,990 el nom de la variable. 232 00:11:07,990 --> 00:11:16,050 Així int * p es recomana en lloc d'int 233 00:11:16,050 --> 00:11:19,730 * Espai p. 234 00:11:19,730 --> 00:11:20,400 Whoo! 235 00:11:20,400 --> 00:11:21,800 De manera que sembla com un munt de regles per 236 00:11:21,800 --> 00:11:23,440 record, però no et preocupis. 237 00:11:23,440 --> 00:11:26,540 Si alguna vegada té algun dubte, no dubti en consultar als CS50 238 00:11:26,540 --> 00:11:28,450 guia d'estil en línia. 239 00:11:28,450 --> 00:11:30,100 >> Anem a resumir ràpidament la important 240 00:11:30,100 --> 00:11:31,510 qüestions d'estil de codi. 241 00:11:31,510 --> 00:11:33,960 En primer lloc, comentar el codi. 242 00:11:33,960 --> 00:11:36,570 Sempre, sempre, sempre, descriure el que fan les funcions de 243 00:11:36,570 --> 00:11:39,530 amb un comentari de diverses línies i comentar cada poques línies de 244 00:11:39,530 --> 00:11:41,280 codi en línia. 245 00:11:41,280 --> 00:11:42,060 Segon. 246 00:11:42,060 --> 00:11:44,560 Sigui consistent amb el seu format de codi. 247 00:11:44,560 --> 00:11:47,800 Presti atenció a la seva col · locació i ús d'aparells ortopèdics 248 00:11:47,800 --> 00:11:51,370 així com al voltant de tota la paraules clau i operadors. 249 00:11:51,370 --> 00:11:54,440 Finalment, tria descriptius noms de variables. 250 00:11:54,440 --> 00:11:57,600 Les variables han de descriure el valor que representen, però 251 00:11:57,600 --> 00:11:59,680 No hauria de trigar una eternitat en escriure. 252 00:11:59,680 --> 00:12:00,790 >> I això és tot. 253 00:12:00,790 --> 00:12:03,080 Tot això es convertirà ràpidament en una segona naturalesa a mesura que 254 00:12:03,080 --> 00:12:05,030 escriure codi més i més, i vostè codificació es 255 00:12:05,030 --> 00:12:06,690 amb estil en poc temps. 256 00:12:06,690 --> 00:12:09,710 El meu nom és Tommy, i això és CS50.