Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
GNU кодтау стандарттары – GNU жүйесінде үйлесімді жұмыс істейтін бағдарламаларды жазу үшін жасалған ережелер мен ұсынымдар жиынтығы. GNU кодтау стандарттарын Ричард Столлман және басқа GNU жобасының еріктілері жасаған. Бұл стандарттар құжаты GNU жобасының бөлігі болып табылады және GNU веб-сайтынан алуға болады. Ол негізінен GNU үшін C тілінде еркін бағдарламалық құралдарды жазуға арналған, бірақ оның көп бөлігін кеңінен қолдануға болады. Атап айтқанда, GNU жобасы өз үлескерлерін бағдарламалары C тілінде жазылған болса да, әрқашан осы стандарттарды сақтауға шақырады.
The GNU coding standards are a set of rules and guidelines for writing programs that work consistently within the GNU system. The GNU Coding Standards were written by Richard Stallman and other GNU Project volunteers. The standards document is part of the GNU Project and is available from the GNU website. Though it focuses on writing free software for GNU in C, much of it can be applied more generally. In particular, the GNU Project encourages its contributors to always try to follow the standards—whether or not their programs are implemented in C.
Файлдар
Стандарттар барлық бағдарламалардың /usr және /etc тек оқу режимінде орнатылғанда жұмыс істей алуын талап етеді. Сондықтан, ішкі мақсаттар үшін өзгертілетін файлдар (лог файлдары, құлып файлдары, уақытша файлдар және т.б.) /usr немесе /etc каталогында сақталмауы керек. /etc каталогында жүйелік конфигурация файлдарын жаңартуға арналған бағдарламалар үшін ерекшелік жасалады. Сонымен қатар, егер пайдаланушы бір каталогтағы файлды өзгертуді тікелей сұраса, сол каталогта файлдарды сақтауға рұқсат етіледі.
The standards require that all programs be able to operate when /usr and /etc are mounted read only. Therefore, files that are modified for internal purposes (log files, lock files, temporary files, etc.) should not be stored in either /usr or /etc. An exception is made for programs whose job it is to update system configuration files in /etc. Another exception is made for storing files in a directory when the user has explicitly asked to modify a file in the same directory.
Көшіруге қабілеттілік
GNU кодтау стандарттары портативтілік мәселесін былай анықтайды: Unix әлемінде портативтілік – «Unix жүйелері арасында» дегенді білдіреді; GNU бағдарламасында мұндай портативтілік қажет, бірақ аса маңызды емес. Стандартқа сәйкес, портативтілік мәселелері шектеулі, себебі GNU бағдарламалары бір компилятормен – GNU C компиляторымен құрастырылып, тек бір жүйеде, яғни GNU жүйесінде жұмыс істеу үшін жасалған. Дегенмен, портативтілік проблемасының бір түрі бар, ол – стандарттың бағдарламаның әртүрлі CPU түрлерінде жұмыс істеуін талап ететіні. Стандартта GNU 16 биттік жүйелерді қолдамайтыны және қолдамайтыны айтылған, бірақ 32 және 64 биттік жүйелердің барлығын қолдау – міндетті талап.
The GNU Coding Standards define the issue of portability in this way: portability in the Unix world means 'between Unixes'; in a GNU program this kind of portability is desirable, but not vitally important. According to the standard, portability problems are very limited as GNU programs are designed to be compiled with one compiler, the GNU C Compiler, and only run on one system, which is the GNU system. There is one form of portability problem though, and that is the fact that the standard makes it clear that a program should run on different CPU types. The standard says that GNU doesn't and won't support 16 bit systems, but handling all the different 32 and 64 bit systems is absolutely necessary.
Сын
GNU кодтау стандарттары негізінен GNU жобаларында қолданылады, бірақ олардың қолданылуы тек GNU жобаларымен ғана шектелмейді. Linux ядросы ядролық код үшін осы стильді қатаң түрде ұсынбайды және стиль туралы теріс пікір білдіреді: "Алдымен, GNU кодтау стандарттарының көшірмесін басып шығарып, оқымауға кеңес беремін. Оларды өртеңіз, бұл үлкен символдық әрекет болады". Стив Макконнелл өзінің "Код толық" кітабында да осы стильді қолдануға қарсы кеңес береді; ол осы стильді қолданған код мысалын "Кодтау қорқынышы" белгісімен көрсетеді, бұл ерекше қауіпті кодты білдіреді және жақшалар үшін қосымша көшіру деңгейінің қажеттілігі оқуды қиындатады деп мәлімдейді.
The GNU coding standards are primarily used by GNU projects, though its use is not limited to GNU projects alone. The Linux kernel strongly discourages this style for kernel code, and refers to the style pejoratively: "First off, I’d suggest printing out a copy of the GNU coding standards, and NOT read it. Burn them, it’s a great symbolic gesture.". Steve McConnell, in his book Code Complete, also advises against using this style; he marks a code sample which uses it with a "Coding Horror" icon, symbolizing especially dangerous code, and states that it impedes readability by requiring an extra level of indentation for braces.