А.В. Столяров - Оформление программного кода (1108519), страница 5
Текст из файла (страница 5)
Êîãäà ðàçìåð òàêîé ïðîãðàììû ïåðåâàëèâàåò çà êàêóþ-íèáóäü ñîòíþ ñòðîê, êîä ñòàíîâèòñÿ ñîâåðøåííî íå ïîääàþùèìñÿ íàâèãàöèè; ïîïðîñòó ãîâîðÿ, ïðè ðàáîòå ñ òàêîé ïðîãðàììîé(íàïðèìåð, ïðè íåîáõîäèìîñòè ÷òî-òî â íåé èñïðàâèòü) áîëüøå âðåìåíèòðàòèòñÿ íà ïîèñê íóæíîãî ôðàãìåíòà, íåæåëè íà ñàìè èñïðàâëåíèÿ. èäåàëå êàæäàÿ ïîäïðîãðàììà (âêëþ÷àÿ ¾ãëàâíóþ¿ ïðîãðàììó èëèôóíêöèþ) äîëæíà áûòü íàñòîëüêî êîðîòêîé, ÷òîáû îäíîãî áåãëîãî âçãëÿäà íà íå¼ áûëî äîñòàòî÷íî äëÿ ïîíèìàíèÿ å¼ îáùåé ñòðóêòóðû. Îñòà¼òñÿòîëüêî ïîíÿòü, ñêîëüêî îçíà÷àåò ýòî ¾áûòü íàñòîëüêî êîðîòêîé¿. Îïûòïîêàçûâàåò, ÷òî èäåàëüíàÿ ïîäïðîãðàììà íå äîëæíà ïðåâûøàòü â äëèíó 25 ñòðîê, õîòÿ ýòîò ëèìèò, âîîáùå ãîâîðÿ, íå âïîëíå æåñòêèé. Òàê,åñëè â âàøåé ïîäïðîãðàììå âñòðåòèëñÿ îïåðàòîð âûáîðà (case äëÿ Ïàñêàëÿ, switch äëÿ Ñè, cond äëÿ Ëèñïà è ò.
ï.), òî âïîëíå äîïóñòèìî ÷óòüïðåâûñèòü óêàçàííûé ðàçìåð: ñêàæåì, ïîäïðîãðàììà â 50 ñòðîê îáû÷íîêðèìèíàëîì íå ñ÷èòàåòñÿ, õîòÿ è íå ïðèâåòñòâóåòñÿ. Ñ äðóãîé ñòîðîíû,åñëè ïîäïðîãðàììà ïîäáèðàåòñÿ ê äëèíå â 60, à òî è 70 ñòðîê, òî å¼íåîáõîäèìî íåìåäëåííî, íå îñòàâëÿÿ ýòîãî íà àáñòðàêòíîå ¾ïîòîì¿, ðàçáèòü íà ïîäçàäà÷è. Åñëè æå ïîäïðîãðàììà ïåðåâàëèëà çà ñîòíþ ñòðîê,âàì íåîáõîäèìî ïåðåîñìûñëèòü ñâî¼ îòíîøåíèå ê îôîðìëåíèþ êîäà, ïîñêîëüêó ïðè ïðàâèëüíîì ïîäõîäå òàêîãî íèêîãäà íå ïðîèçîéä¼ò. Ñêàçàííîå îçíà÷àåò, â ÷èñëå ïðî÷åãî, ÷òîîïåðàòîð âûáîðà, âëîæåííûé âäðóãîé îïåðàòîð âûáîðà, ïðàêòè÷åñêè íèêîãäà íå ñëåäóåò ñ÷èòàòü äîïóñòèìûì. Åñëè â âàøåì îïåðàòîðå âûáîðà ðåàëèçàöèÿ âñåõèëè íåêîòîðûõ àëüòåðíàòèâ îêàçàëàñü íàñòîëüêî ñëîæíîé, ñëåäóåò âûäåëèòü êàæäóþ àëüòåðíàòèâó â îòäåëüíóþ ïîäïðîãðàììó, à ñàì îïåðàòîðâûáîðà òîãäà áóäåò ñîñòîÿòü èç èõ âûçîâîâ.×èñëî 25 âîçíèêëî çäåñü íå ñëó÷àéíî.
Òðàäèöèîííûé ðàçìåð ýêðàíààëôàâèòíî-öèôðîâîãî òåðìèíàëà ñîñòàâëÿåò 25x80 èëè 24x80 (24 èëè 25 ñòðîêïî 80 çíàêîìåñò â ñòðîêå), è ñ÷èòàåòñÿ, ÷òî ïîäïðîãðàììà äîëæíà öåëèêîì óìå16ùàòüñÿ íà òàêîé ýêðàí, ÷òîáû äëÿ å¼ àíàëèçà íå ïðèõîäèëîñü ïðèáåãàòü ê ñêðîëëèíãó. Âïîëíå âîçìîæíî, ÷òî ëè÷íî âû ïðåäïî÷èòàåòå ðàáîòàòü ñ ðåäàêòîðàìèòåêñòîâ, èñïîëüçóþùèìè ãðàôè÷åñêèé ðåæèì, è íà âàøåì ýêðàíå óìåùàåòñÿ ãîðàçäî áîëüøå, ÷åì 25 ñòðîê; ýòî, íà ñàìîì äåëå, íèêàê íå ìåíÿåò ñèòóàöèþ, ïîòîìó ÷òî, âî-ïåðâûõ, âîñïðèíèìàòü òåêñò ñóùåñòâåííî äëèííåå, íåæåëè íà 25 ñòðîê,òÿæåëî, äàæå åñëè åãî óäàëîñü ïîìåñòèòü íà ýêðàí; âî-âòîðûõ, ìíîãèå ïðîãðàììèñòû, äàæå èñïîëüçóÿ ãðàôè÷åñêèé ðåæèì, ïðåäïî÷èòàþò ðàáîòàòü ñ êðóïíûìèøðèôòàìè, òàê ÷òî íà èõ ýêðàí áîëüøå 25 ñòðîê âñ¼-òàêè íå âëåçåò.Ê äëèíå ïîäïðîãðàììû ìîæíî ïîäîéòè è ñ äðóãîé ñòîðîíû.
Êàæäàÿ ïîäïðîãðàììà äîëæíà ðåøàòü ðîâíî îäíó çàäà÷ó, ïðè÷¼ìâû äîëæíû äëÿ ñåáÿ ñôîðìóëèðîâàòü, êàêóþ êîíêðåòíî çàäà÷ó áóäåòðåøàòü ýòà ïîäïðîãðàììà. Åñëè ýòà çàäà÷à äîñòàòî÷íî ñëîæíà, ÷òîáûèç íå¼ ìîæíî áûëî âûäåëèòü ïîäçàäà÷è, òî èõ íóæíî âûäåëèòü ýòîïîâûøàåò ÿñíîñòü ïðîãðàììû.Îòìåòèì, ÷òî ïðàâèëî ¾îäíà ïîäïðîãðàììà îäíà çàäà÷à¿ ïîìîæåòâàì òàêæå è ïðè âûáîðå íàáîðà ïàðàìåòðîâ äëÿ ïîäïðîãðàììû. Íà÷èíàþùèå ïðîãðàììèñòû ÷àñòî äåëàþò õàðàêòåðíóþ îøèáêó, âêëþ÷àÿ â ñïèñîê ïàðàìåòðîâ ïîäïðîãðàììû òàêèå ïàðàìåòðû, ñìûñë êîòîðûõ íåâîçìîæíî îáúÿñíèòü, íå ïðèáåãàÿ ê îáúÿñíåíèÿì ïðèíöèïà ðàáîòû âûçûâàþùåé ïîäïðîãðàììû.
Òàêîé ñòèëü íèêóäà íå ãîäèòñÿ.Îòâåò íà âîïðîñ ¾÷òî äåëàåò ýòà ïîäïðîãðàììà¿ äîëæåí ñîñòîÿòü èç îäíîéôðàçû , è èç ýòîé ôðàçû äîëæíî áûòü õîòÿ áû â ïåðâîì ïðèáëèæåíèèïîíÿòíî, êàêîâà ñåìàíòèêà âñåõ ïàðàìåòðîâ ïîäïðîãðàììû.Êîëü ñêîðî ðå÷ü çàøëà î ïàðàìåòðàõ, îòìåòèì åù¼ îäèí ìîìåíò.Ïîäïðîãðàììó, èìåþùóþ íå áîëåå ïÿòè ïàðàìåòðîâ, èñïîëüçîâàòü ëåãêî; ïîäïðîãðàììó ñ øåñòüþ ïàðàìåòðàìè èñïîëüçîâàòü íåñêîëüêî çàòðóäíèòåëüíî; ïîäïðîãðàììû ñ ñåìüþ è áîëååïàðàìåòðàìè óñëîæíÿþò, à íå îáëåã÷àþò ðàáîòó ñ êîäîì.
Ýòîîáóñëîâëåíî îñîáåííîñòÿìè ÷åëîâå÷åñêîãî ìîçãà. Óäåðæàòü â ïàìÿòè ïîñëåäîâàòåëüíîñòü èç ïÿòè îáúåêòîâ íàì äîñòàòî÷íî ïðîñòî, ïîñëåäîâàòåëüíîñòü èç øåñòè îáúåêòîâ ìîæåò óäåðæàòü â ïàìÿòè íå êàæäûé, íó àåñëè îáúåêòîâ ñåìü èëè áîëüøå, òî óäåðæàòü èõ â ïàìÿòè åäèíîé êàðòèíêîé ïîïðîñòó íåâîçìîæíî, ïðèõîäèòñÿ ñîîòâåòñòâóþùóþ ïîñëåäîâàòåëüíîñòü çàçóáðèâàòü, à ïîòîì, êàê ñëåäñòâèå, òðàòèòü âðåìÿ è ñèëû íà òî,÷òîáû âñïîìíèòü çàçóáðåííîå. Òàêèì îáðàçîì, åñëè âàøà ïîäïðîãðàììàèìååò íå áîëüøå ïÿòè ïàðàìåòðîâ, òî, êàê ïðàâèëî, âû ëåãêî óäåðæèòåâ ïàìÿòè èõ ñåìàíòèêó (åñëè ýòî íå òàê ñêîðåå âñåãî, ïîäïðîãðàììàíåóäà÷íî ñïðîåêòèðîâàíà), òàê ÷òî ñäåëàòü âûçîâ òàêîé ïîäïðîãðàììûîêàæåòñÿ äëÿ âàñ ëåãêî. Åñëè æå ïàðàìåòðîâ áîëüøå, òî íàïèñàíèå êàæäîãî âûçîâà ýòîé ïîäïðîãðàììû ïðåâðàòèòñÿ â ìó÷èòåëüíîå è íå âñåãäàóñïåøíîå êîâûðÿíèå â ïàìÿòè èëè, ÷òî áîëåå âåðîÿòíî, â òåêñòå ïðîãðàììû; òàêèå âåùè íåèçáåæíî îòâëåêàþò ïðîãðàììèñòà îò òåêóùåé çàäà÷è,çàñòàâëÿÿ âñïîìèíàòü íåñóùåñòâåííûå äåòàëè êîäà, íàïèñàííîãî ðàíåå.17Ìîæíî íàçâàòü åù¼ îäíî ýìïèðè÷åñêîå ïðàâèëî, ñïîñîáíîå ïîìî÷üãðàìîòíî ðàçáèòü çàäà÷ó íà ïîäçàäà÷è.Êàæäàÿ âûäåëåííàÿ ïîäçàäà÷à äîëæíà áûòü òàêîé, ÷òîáû ïðè ðàáîòå íàä âûçûâàþùåéïîäïðîãðàììîé ìîæíî áûëî íå ïîìíèòü äåòàëè ðåàëèçàöèè âûçûâàåìîé, è íàîáîðîò, ïðè ðàáîòå íàä âûçûâàåìîé íèêàê íåó÷èòûâàòü äåòàëè ðåàëèçàöèè âûçûâàþùåé.
Åñëè ýòî ïðàâèëî íåâûïîëíÿåòñÿ, ÷òåíèå êîäà ñ ðàçáèåíèåì íà ïîäïðîãðàììû ìîæåò ñòàòüáîëåå òðóäíûì, ÷åì äî òàêîãî ðàçáèåíèÿ âåäü ïðè àíàëèçå êîäà ïðèä¼òñÿ ïîñòîÿííî ¾ïðûãàòü¿ ìåæäó òåëàìè äâóõ ïîäïðîãðàìì.1.3. Óíèâåðñàëüíî-÷èòàåìûé êîäÑîçäàâàÿ òåêñò ïðîãðàììû, ñëåäóåò ó÷èòûâàòü, ÷òî â ìèðå ñóùåñòâóþò ñàìûå ðàçíûå îïåðàöèîííûå ñèñòåìû è ñðåäû, ïðîãðàììèñòûèñïîëüçóþò íåñêîëüêî äåñÿòêîâ (åñëè íå ñîòåí) ðåäàêòîðîâ òåêñòîâ íàëþáîé âêóñ, à òàêæå âñåâîçìîæíûå âèçóàëèçàòîðû êîäà, ôóíêöèè êîòîðûõ ìîãóò ñèëüíî ðàçëè÷àòüñÿ. Äàëåêî íå âñå ïðîãðàììèñòû ãîâîðÿò ïîðóññêè3 ; êðîìå òîãî, äëÿ ñèìâîëîâ êèðèëëèöû ñóùåñòâóþò ðàçëè÷íûåêîäèðîâêè.
Íàêîíåö, îò îäíîãî ðàáî÷åãî ìåñòà ê äðóãîìó ìîãóò ñóùåñòâåííî ðàçëè÷àòüñÿ ðàçìåðû ýêðàíà è èñïîëüçóåìûõ øðèôòîâ.Ñ ÷òåíèåì ïðàâèëüíî îôîðìëåííîé ïðîãðàììû íå äîëæíî âîçíèêíóòü ïðîáëåì, êàêîâà áû íè áûëà èñïîëüçóåìàÿ îïåðàöèîííàÿ ñðåäà.Ýòîãî ìîæíî äîáèòüñÿ, âîîðóæèâøèñü âñåãî òðåìÿ ïðîñòûìè ïðàâèëàìè: ñèìâîëû èç íàáîðà ASCII äîñòóïíû âñåãäà, àíãëèéñêèé ÿçûê çíàþòâñå, à ýêðàí íå áûâàåò ìåíüøå, ÷åì 24x80 çíàêîìåñò, íî áîëüøå îí áûòüíå îáÿçàí.1.3.1.
Àëôàâèò ASCII ãàðàíòèÿ óíèâåðñàëüíîñòèòåêñòàÅñëè èñïîëüçîâàòü â òåêñòå ïðîãðàììû òîëüêî ñèìâîëû èç íàáîðàASCII, ìîæíî áûòü óâåðåííûì, ÷òî ýòîò òåêñò óñïåøíî ïðî÷èòàåòñÿ íàëþáîì êîìïüþòåðå ìèðà, â ëþáîé îïåðàöèîííîé ñèñòåìå, ñ ïîìîùüþ ëþáîé ïðîãðàììû, ïðåäíàçíà÷åííîé äëÿ ðàáîòû ñ òåêñòîì, è òàê äàëåå. Íàïîìíèì, ÷òî â ýòîò íàáîð âõîäÿò:• çàãëàâíûå è ñòðî÷íûå áóêâûäèàêðèòè÷åñêèõçíàêîâ:abcdefghijklmnopqrstuvwxyz;ëàòèíñêîãîàëôàâèòà áåçABCDEFGHIJKLMNOPQRSTUVWXYZ,3 Êàê óæå îòìå÷àëîñü ðàíåå, ïðåäïîëîæåíèÿ ñî ñëîâîì ¾íèêîãäà¿ äåëàòü âðåäíî;ýòî îòíîñèòñÿ è ê ïðåäïîëîæåíèþ î òîì, ÷òî âàøó ïðîãðàììó ¾íèêîãäà¿ íå ñòàíóò÷èòàòü ïðîãðàììèñòû èç äðóãèõ ñòðàí.1830 40 50 60 70 80 90 100 110 120--------------------------------0:( 2 < F P Z d nx1:) 3 = G Q [ e oy2:* 4 > H R \ f pz3: ! + 5 ? I S ] g q{4: " , 6 @ J T ^ h r|5: # - 7 A K U _ i s}6: $ .
8 B L V ` j t~7: % / 9 C M W a k u8: & 0 : D N X b l v9: ? 1 ; E O Y c m wÐèñ. 1.1: Îòîáðàæàåìûå ñèìâîëû ASCII• àðàáñêèå öèôðû: 0123456789;• çíàêè àðèôìåòè÷åñêèõ äåéñòâèé, ñêîáêè è çíàêè ïðåïèíàíèÿ:.,;:'"`-?!@#$%^&()[]{}<>=+-*/~\|;• çíàê ïîä÷¼ðêèâàíèÿ _;• ïðîáåëüíûå ñèìâîëû ïðîáåë, òàáóëÿöèÿ è ïåðåâîä ñòðîêè.Íèêàêèå äðóãèå ñèìâîëû â ýòîò íàáîð íå âõîäÿò.  ASCII íå íàøëîñüìåñòà äëÿ ñèìâîëîâ íàöèîíàëüíûõ àëôàâèòîâ, âêëþ÷àÿ ðóññêóþ êèðèëëèöó, à òàêæå äëÿ ëàòèíñêèõ áóêâ ñ äèàêðèòè÷åñêèìè çíàêàìè, òàêèõ èëè A. Íåò â ýòîì íàáîðå ìíîãèõ ïðèâû÷íûõ íàì òèïîãðàôñêèõêàê Sñèìâîëîâ, òàêèõ êàê äëèííîå òèðå, êàâû÷êè-¼ëî÷êè (¾¿), è ìíîãèõ äðóãèõ.Ñèìâîëû, íå âõîäÿùèå â íàáîð ASCII, â òåêñòå ïðîãðàììèñïîëüçîâàòü íåëüçÿ äàæå â êîììåíòàðèÿõ, íå ãîâîðÿ óæå î ñòðîêî-âûõ êîíñòàíòàõ è òåì áîëåå îá èäåíòèôèêàòîðàõ.
Îòìåòèì, ÷òî áîëüøèíñòâî ÿçûêîâ ïðîãðàììèðîâàíèÿ íå ïîçâîëèò èñïîëüçîâàòü ÷òî ïîïàëî âèäåíòèôèêàòîðàõ, íî åñòü è òàêèå òðàíñëÿòîðû, êîòîðûå ñ÷èòàþò ñèìâîëû, íå âõîäÿùèå â ASCII-òàáëèöó, äîïóñòèìûìè â èäåíòèôèêàòîðàõ ïðèìåðîì ìîæåò ñëóæèòü áîëüøèíñòâî èíòåðïðåòàòîðîâ Ëèñïà. Íó à íàñîäåðæèìîå ñòðîêîâûõ êîíñòàíò è êîììåíòàðèåâ áîëüøèíñòâî òðàíñëÿòîðîâ âîîáùå íå îáðàùàåò íèêàêîãî âíèìàíèÿ, ïîçâîëÿÿ âñòàâèòü òóäàïðàêòè÷åñêè ÷òî óãîäíî.
È òåì íå ìåíåå, ïîïóñòèòåëüñòâî òðàíñëÿòîðîâ íå äîëæíî ñáèâàòü íàñ ñ òîëêó: òåêñò ïðîãðàììû îáÿçàí ñîñòîÿòü èçASCII-ñèìâîëîâ, è òîëüêî èç íèõ. Ëþáîé ñèìâîë, íå âõîäÿùèé â ASCII,ìîæåò ïðåâðàòèòüñÿ âî ÷òî-òî ñîâåðøåííî èíîå ïðè ïåðåíîñå òåêñòà íàäðóãîé êîìïüþòåð, ìîæåò ïðîñòî íå ïðî÷èòàòüñÿ è ò. ä.19Âîçíèêàåò åñòåñòâåííûé âîïðîñ, êàê áûòü, åñëè ïðîãðàììà, êîòîðóþâû ïèøåòå, äîëæíà îáùàòüñÿ ñ ïîëüçîâàòåëåì ïî-ðóññêè. Îòâåò íà ýòîòâîïðîñ ìû äàäèì ÷óòü ïîçæå.1.3.2. Àíãëèéñêèé ÿçûê íå ðîñêîøü, à ñðåäñòâîâçàèìîïîíèìàíèÿÏî ñëîæèâøåéñÿ òðàäèöèè, ïðîãðàììèñòû âñåãî ìèðà èñïîëüçóþòèìåííî àíãëèéñêèé ÿçûê äëÿ îáùåíèÿ ìåæäó ñîáîé4 .
Êàê ïðàâèëî, ìîæíî ïðåäïîëàãàòü, ÷òî ëþáîé ÷åëîâåê, ðàáîòàþùèé ñ òåêñòàìè êîìïüþòåðíûõ ïðîãðàìì, ïîéì¼ò õîòÿ áû íå î÷åíü ñëîæíûé òåêñò íà àíãëèéñêîìÿçûêå, âåäü èìåííî íà ýòîì ÿçûêå íàïèñàíà äîêóìåíòàöèÿ ê ðàçíîîáðàçíûì áèáëèîòåêàì, ñòàíäàðòû, îïèñàíèÿ ñåòåâûõ ïðîòîêîëîâ, èçäàíîìíîæåñòâî êíèã ïî ïðîãðàììèðîâàíèþ; êîíå÷íî, ìíîãèå êíèãè è äðóãèåòåêñòû ïåðåâåäåíû íà ðóññêèé (à ðàâíî è íà ôðàíöóçñêèé, ÿïîíñêèé, âåíãåðñêèé, õèíäè è ïðî÷èå íàöèîíàëüíûå ÿçûêè), íî áûëî áû íåðàçóìíîîæèäàòü, ÷òî ëþáîé íóæíûé âàì òåêñò îêàæåòñÿ äîñòóïåí íà ðóññêîì òîãäà êàê íà àíãëèéñêîì äîñòóïíà ïðàêòè÷åñêè ëþáàÿ ïðîãðàììèñòñêàÿèíôîðìàöèÿ.Èç ýòîãî âûòåêàþò òðè âàæíûõ òðåáîâàíèÿ.
Âî-ïåðâûõ,ëþáûåèäåíòèôèêàòîðû â ïðîãðàììå äîëæíû ñîñòîÿòü èç àíãëèéñêèõñëîâ èëè áûòü àááðåâèàòóðàìè àíãëèéñêèõ ñëîâ. Åñëè âû çàáûëè,êàê íóæíîå âàì ñëîâî ïåðåâåñòè íà àíãëèéñêèé, íå ïîëåíèòåñü çàãëÿíóòüâ ñëîâàðü. Ïîä÷åðêí¼ì, ÷òî ñëîâà äîëæíû áûòü èìåííî àíãëèéñêèå íåíåìåöêèå, íå ôðàíöóçñêèå, íå ëàòèíñêèå è òåì áîëåå íå ðóññêèå ¾òðàíñëèòîì¿ (ïîñëåäíåå âîîáùå ñ÷èòàåòñÿ ó ïðîôåññèîíàëîâ ïðèçíàêîì êðàéíåäóðíîãî òîíà).