Кот ученый - Образовательный портал

Профессиональная этика программиста. Профессиональная этика программиста Профессиональный этикет программиста

Раз за разом тратите часы на поиск ошибки в коде сайта или приложения? Все мы попадали в такую ситуацию. Лишь немногие вещи могут огорчить вас больше, чем отладка беспорядочной кучи кода. Это занимает больше времени, чем действительно нужно для поиска ошибок, отнимая драгоценное время, от остальной работы.

Хорошая новость состоит в том, что писать чистый, легко сопровождаемый код достаточно просто. Это сделает ваше будущее и будущее других разработчиков более счастливым.

Я спас вас от многолетнего повторения ошибок, собрав их в одном месте.

0. Комментируйте код

Что может быть хуже кода без комментариев? Если вы скажете – что угодно, вы ошибетесь. Если вы собираетесь как-то улучшить код – убедитесь, что он сопровождается комментариями. Комментируйте «громко и гордо».

Только что дописали большую и важную функцию? Сделайте одолжение себе и миру – опишите, что она делает и как ее использовать. Вы поблагодарите себя за это спустя полгода. К тому же, это позволит вам избежать смертельной угрозы, написанной в двоичном коде одним из участников команды.

1. Теперь сделайте комментарии осмысленными

Вы пишете комментарии! Отлично. Теперь важно, чтобы ваши комментарии в короткой и ясной форме описывали суть происходящего. Помните, каждый из нас по-разному представляет единорога, мы все думаем по-разному. У Джедиса нет времени на расшифровку клингонского языка из сериала Star Trek (или ваших межгалактических метафор).

Вы также должны избегать слишком очевидных комментариев, как в примере ниже:

$variable = 0; // Присвоение переменной нулевого значения

Если вы пишете код, который является очевидным даже для новичка, не беспокойтесь о комментировании. Мы искренне ценим энтузиазм и приверженность делу, но некоторые вещи действительно не требуют пояснений.

2. Не превращайте ваш код непонятно во что

Используйте ясные имена переменных и вскоре вы обнаружите, что код сам себя документирует. Названия переменных должны зависеть от их назначения, а не от имен ваших любимых трансформеров.

$megatron = str_replace($thing, thing2, $redfishblue);

Есть какие-то идеи по поводу того, что делает этот блок? Полагаю, Мегатрон голоден?
Тот же принцип следует отнести и к коротким именам переменных. Если вы не используете общепринятые стандартные аббревиатуры, используйте полные слова. Случайный набор букв запутает почти любого программиста, читающего ваш код.

$gc = m($g, $u, $t, $f); echo $gc;

Мы понимаем это. Это ведь самое главное, правда?

Если ваши переменные названы как в примере ниже, значит вы на верном пути.

$postTitle = get_the_title(); $filteredTitle = str_replace("&", "&", $postTitle); $postTitle = $filteredTitle;

3. Деревья не только для птиц

Теперь, когда вы пишете комментарии и классно именуете переменные, вы прошли половину пути. Мои поздравления! Теперь настало время сделать код удобочитаемым. Вложите друг в друга ваши блоки кода, чтобы показать наличие древовидной иерархии. Правильно структурированный HTML-код подобно ветру принесет правильный CSS-код.

Найдите баг:

Everything is Awesome

Конечно, вы возразите, что инспектор кода в любом случае добавит отступ в ваш код, но если ваш код не выглядит как в инспекторе, как, черт возьми, кто-то поймет, что где-то не хватает двойных кавычек?

4. Следуйте стандартам сообщества

Основные принципы, перечисленные выше, помогут вам попасть на вечеринку, но если вы хотите на ней задержаться, нужно учесть еще кое-что. Любое сообщество, например WordPress, Django, или jQuery имеет свой набор стандартов кодирования. Следуйте этим стандартам.

Игнорирование принятых стандартов – верный способ разрушить вашу репутацию как программиста. Всегда сверяйтесь со стандартами, прежде чем выработать свой метод. Если у вас есть привычка программировать плохо – ее будет крайне трудно преодолеть.

  • Для большей информации о стандартах в WordPress, сверяйтесь WordPress Codex.
  • Для сверки со стандартами Python, смотрите PEP 8 Style Guide.
  • Стандарты для других языков ищите в Google.

5. И наконец… Повеселитесь

Программирование является одной из тех великих профессий, где мы можем носить джинсы, футболки и бороды на работу каждый день. Это предполагает море веселья. С кодом вы можете сделать невероятные вещи, — вещи, которые буквально могут изменить мир.

Но когда вы проводите бессонные ночи в попытках исправить одну ошибку в IE7, оставленную вами (или кем-то, пожелавшим остаться неизвестным), среди двух тысяч строк CSS-кода – это не приносит радости.

Если вы последуете этим простым советам, может быть, на следующих корпоративных соревнованиях против вас не объединятся пять разгневанных разработчиков.

В этой статье хочется рассказать об этике
программирования. Опытные программисты,
судя по исходникам, могут определить
уровень знаний непосредственно
программиста. Как? А очень просто. Есть
достаточно много негласных правил, так
называемой этикой программирования. Зачем
нужна эта этика, мы и погорим в данной
статье.

Часть1: Сага о комментариях.

Ну что ж, если вы когда-нибудь видели
исходные тексты программ, а тем более
программировали, вы прекрасно знаете, что
такое комментарии. Но почему же тогда кто-то
использует их несколько чаще других? На
самом деле, при написании программ очень
полезно оставлять комментарии.

Во-первых, для самого себя. То есть для
удобства навигации по своему же коду.
Чёткие и уместные комментарии способны
сохранить программисту до нескольких часов
времени только лишь из-за того, что он не
будет думать лишний раз, за что отвечает
каждая часть текста.

Во-вторых, для последователей. Если
человек разрабатывает программу под заказ,
зная, что исходные тексты позднее будут
переданы заказчику. Есть ли гарантия, что
именно вы будете дорабатывать эти
исходники до следующей версии? А сторонний
человек должен будет потерять очень много
времени, чтобы понять, что да как. То ли дело
с комментариями. Читать программу на
русском языке (в крайнем случае на
английском) гораздо проще, чем на языке
программирования. Особенно если программа
использует достаточно сложные
синтаксические конструкции.

Вот вам две немаловажные причины, по
которым комментарии должны писаться.
Отсюда вполне логичный вопрос: как же
писать комментарии правильно? В введении
книги "Экстремальное программирование",
её автор, Кент Бек, частично отвечает на наш
вопрос. Он пишет:

Если пересмотр кода - это хорошо, значит, мы
будем пересматривать код постоянно
- Если тестирование - это хорошо, значит,
каждый участник проекта будет тестировать
код программы постоянно (тестирование
модулей), даже заказчики (функциональное
тестирование).
- Если комментировать код - это хорошо,
значит, мы будем уделять комментариям
внимания ровно столько, сколько
потребуется, чтобы наш код стал лёгким для
чтения даже ребёнку.

Из данных строк видно, что комментарии
нужны, и их нужно ровно столько, сколько
нужно. Да, красиво это я загнул, но судите
сами. Нельзя сказать: На 10Kb кода должно
приходиться 2Kb комментариев. Это было бы
глупо. Следовательно, остаётся только одно:
писать комментарии "в тему", раскрывая
с их помощью наиболее заковыристые области
программы. Не следует забывать, что
комментарии НИКАК не влияют на работу
компилятора, ровно как и на размер
получившейся программы. Комментарии
игнорируются компилятором, однако очень
помогают нам, людям.

Часть2: Сага о коде.

Если вам приходилось писать программы, вы
наверное знаете, что на данный момент
большинство компиляторов лояльно
относятся к стилю записи программы. То есть
компилятору по боку, будете вы ставить
символ переноса строки или нет. Судя по
всему вышесказанному, к одинаковому
результату приведёт Код и Код:

Код:
begin
WriteLn("Hello, world");
end.

Код:
begin WriteLn("Hello, world"); end.

Если не верите, можете проверить сами. Та же
ситуация с Си - компиляторами. Расскажу одну
историю, происшедшую со мной несколько лет
назад: Один мой знакомый хвастался
написанной им программой (он писал на С). В
ответ на это я сказал ему, что эта программа
пишется на Паскале в три строки. Он был
взбешен, потому как также как и я мог
написать эту программу на Паскале, но не в
три строки - это точно (в 15-20 где-то).
Пришлось показать человеку всё силу логики,
и программа действительно заняла ровно три
строки. Почему 3, а не одну? Не знаю как в Си,
но в Паскале максимальная длина строки - 256
символов (поправьте меня если я не прав).
Следовательно, моя программа заняла
примерно 256 * 3 символов (это ровно столько же,
сколько потребовалось бы моему другу для
написания такой же программы). Этот пример я
привел не зря: мой код был АБСОЛЮТНО
нечитабельным. Рассмотрение и правка его в
дальнейшем - это не то чтобы извращение, это
камасутра полная. Если кому приходилось
играть в Quake3 и сохранять из игры свой конфиг
- меня поймут. Квака по умолчанию пишет всё в
одну строчку, а разделителем ставит какой-то
глупый символ. Это никак не может
сравниться с конфигом, написанным вручную,
с комментариями, и т.д. Следует запомнить на
всё жизнь: хочешь добиться уважения со
стороны других - делай свой код более
читабельным. Чем больше свободного места
между строками - тем легче читать код.
Следовательно это - наш выбор. ВСЕГДА пишите
математические знаки (+ - = * /) через пробел.
То есть примерно так, как написано во врезке
Пр, и никогда так, как написано во врезке
Пр. Итак, читаем и запоминаем:

Пр:
iCounter + iChan:= iRoute;

Пр
iCounter+iChan:=iRoute;

Если честно, я с трудом набрал Пр: привычка
выработалась настолько, что Space я давил уже
подсознательно. Желаю и вам того же...

Часть3: Сага о переменных.

Что можно сказать о переменных? На самом
деле, очень многое. Например, вы заметили,
что во врезках Пр и Пр я несколько
необычно назвал переменные? Нет, это для вас
необычно. Для меня это вполне нормальные
названия. К примеру, смотря на название
переменной iCounter, я могу смело сказать, что
это не счётчик Интернетов (иначе он
назывался бы iInetCounter или iICounter), а переменная
типа Integer, которая является чьим либо
счётчиком. Первая буква "i" обозначает
тип переменной: i: Integer, s: String, c: Char, b: Boolean и т.д.
и т.п. Таким образом, я делаю код более
понятным для себя. Для удобства навигации
других людей по вашему коду, в начале
программы опишите, по какому принципу вы
называете переменные. Это повысит ваш
профессиональный уровень программирования.
Следующее, что хотелось бы сказать о
переменных - давайте им осмысленные имена.
Именовать переменную "a" или "x"
глупо, не считая тех случаев, когда "a" и
"x" - элементы уравнения. В противном
случае называйте переменные осмысленно,
чтобы их имя примерно отображало принцип
действия переменной. Лучше всего называть
переменную полными либо сокращёнными
словами английского языка. Это позволит
быстрее ориентироваться в вашем коде не
русскоязычному населению планеты. Каждое
слово желательно начинать с заглавной
буквы. Что касается объектно-ориентированных
языков, которые так и норовят назвать
компоненты тупыми именами, я могу сказать
единственное: откажитесь от стандартных
Edit1, Label1 и т.д., поскольку когда число
одинаковых компонентов зашкалит за 5, будет
весьма нелегко держать в голове, что
обозначает номер какого-то компонента.
Называть я советую компоненты также как и
переменный, с той единственной разницей,
что вместо типа переменной, на первое место
ставить сокращённое название класса
компонентов. Так, например, Edit14, в который мы
вводим пароль, будет именоваться edPassEnter или
что-нибудь схожее с этим. Желательно в

Форум

(c) Гура Андрей (EAGLE SOFT), г.Курган. В одной из статей РЕВЮ я про- читал предложение редакции, в которой было предложено создать своеобразный кодекс для демомей- керов. Я считаю, что нужен ко- декс программиста вообще и ду- маю, что мой кодекс будет приме- ром всем программистам и принят за основу. ПЕРЕКЛЮЧЕНИЕ СТРАНИЦ ОЗУ ════════════════════════ Переключать странички лучше по порту #7FFD, а не по половин- ке #FD. Таким образом можно из- бежать множества проблем совмес- тимости программ с другими ком- пьютерами. Возьмем всем извес- тный пример с INSULT MEGADEMO. Эта программа идет на PROFI, PENTANGON 128, но не хочет рабо- тать на SCORPION"е, чем и вызва- но недовольствие многих SPECCY- USER"ов (я думаю, владельцы SCORPION"ов меня поймут). ПОРТ #7FFD ┌─┬─┬─┬─┬─┬─┬─┬─┐ │ │ │ │Z│Y│X│X│X│ └─┴─┴─┴─┴─┴─┴─┴─┘ X -номер страницы ОЗУ, от 0 до 7, подключаемой с адреса #C000; Y -переключение экрана, Y=0 - #4000, Y=1 - #C000 (страница); Z-переключение ПЗУ, Z=0 - ZX128, Z=1 - ZX48; Обращаться к порту для перек- лючения страниц проще следующим образом: 140. LD BC,#7FFD LD A,N+16 ;N-номер страницы OUT (C),A 2 На время изменения содержимого порта прерывания необходимо зап- рещать. УПРАВЛЕНИЕ ══════════ KEMPSTON нужно опрашивать по порту #1F, а не по #DF, как это сделано на ZX-NEXT. А вот по порту #DF (для тех, кто не зна- ет) опрашивается FULER джойстик. ПОРТ #1F ┌─┬─┬─┬─┬─┬─┬─┬─┐ │ │ │ │F│U│D│L│R│ └─┴─┴─┴─┴─┴─┴─┴─┘ F-FIRE-огонь; U-UP-вверх; D-DOWN-вниз; L-LEFT-влево; R-RIGHT-вправо. Обращение к порту происходит по мнемонике IN. SINCLAIR 1 или INTERFACE 1 здесь присущи следующие клавиши: 1-LEFT; 2-RIGHT; 3-DOWN; 4-UP; 5-FIRE. SINCLAIR 2 или INTERFACE 2: 6-LEFT; 7-RIGHT; 8-DOWN; 9-UP; 0-FIRE. CURSOR:5+CS-LEFT; 6+CS-DOWN; 7+CS-UP; 8+CS-RIGHT, причем CS здесь не обязателен, и его от- сутствие даже удобно, но не во всех случаях. KEYBOARD: здесь лучше придер- живаться следуюшего стандарта: O-LEFT; P-RIGHT; Q-UP; A-DOWN; M-FIRE. Опрос происходит по пор- ту #FE. ПОРТ #FE ┌─┬─┬─┬─┬─┬─┬─┬─┐ │ │Y│ │X│X│X│X│X│ └─┴─┴─┴─┴─┴─┴─┴─┘ Опрос производится следующим образом: 142. LD A,N ;N-номер полуряда IN A,(#FE) 2 ПОЛУРЯДЫ ┌──────┬───────┐ 3 │ 1...5│ 6...0 │ 4 2 │ Q...T│ Y...P │ 5 1 │ A...G│H...ENT│ 6 0 │CS...V│B...SPC│ 7 └──────┴───────┘ 0 - #FE 1 - #FD 2 - #FB 3 - #F7 4 - #EF 5 - #DF 6 - #BF 7 - #7F Адрес порта полуряда можно вы- числить по формуле 255-2№, где n - номер полуряда. При загрузке с диска катего- рически запрещено обращаться к нестандартным точкам входа TR- DOS и пользоваться методом прог- раммирования ВГ, т.к. все это ведет к неработоспособности про- грамм при загрузке с HDD, хоть это и выглядит очень эффектно. Опять возьмем для примера INSULT MEGADEMO: я с увереностью гово- рю, что эта программа не загру- зится с винчестера. Также нельзя привязывать заг- рузчики программ к определенной версии TR-DOS - это тоже ведет к несовместимости и недовольству. Так и хочется взять компьютер со старой версией TR-DOS и выбро- сить его в форточку. Возможно, так и сделали любители гонок, когда попытались загрузить LOTUS версии Лаптева, т.к. у них вер- сия 5.03, а игра идет только на 5.04. При загрузке нежелательно что-либо отгружать на диск (тем более не предупредив владельца ПК). СИНХРОНИЗАЦИЯ И ПРЕРЫВАНИЯ ══════════════════════════ Во всех программах при ис- пользовании режима прерываний IM2 нужно создавать таблицу ад- ресов, состоящую из 257 одинако- вых байтов (откуда берутся эти байты, я думаю, вы знаете). За- чем?,- спросите вы, "Ведь это напрасная трата памяти!". Ан нет!, - скажу я. Считается, что с шины данных приходит #FF, но все западные программисты поль- зуются таблицей. Нежелательно засылать в вектор прерываний числа, которые спо- собствуют обращению за адресом к ПЗУ, а именно числа 0-63, хотя экран и область системных пере- менных трогать тоже не стоит. Все эффекты на экране лучше синхронизировать относительно экрана. Для примера снова возь- мем INSULT. В первой части скроллинг при включенном TURBO- режиме дергается. Во второй час- ти все происходит настолько быс- тро, что не успеваешь прочитать бегущую строчку, да и музыка иг- рает быстрее. "ПОРТ АТРИБУТОВ" ════════════════ Никогда не используйте в своих программах порт атрибутов #FF, так как это мнимый порт. Для примера возьмем игру TOP GUN. ДРУГИЕ МЕЛОЧИ ═════════════ В играх обязательно нужно де- лать паузу по нажатии определен- ной клавиши и отгрузку ситуации в любое время игры, причем каж- дая ситуация должна иметь свое определенное имя. У кого есть дополнения к мое- му кодексу, пишите в редакцию ZX РЕВЮ. ********************************

Другие статьи номера:


TR-DOS для начинающих - Часть 1.

Авторская разработка - General Sound - мультимедиа для ZX Spectrum!

Визитная карточка - Представляем новый электронный журнал "Major Wares" (c) Codebusters & V.M.G.

Компьютерная новелла - Knight Lore "Преданья рыцарских времен".

Новые программы - И.Рощин. HELP_Z80. В.Давыдов. Catalog"s Base v1.8.

Описание оболочки журнала "ZX-РЕВЮ"

Перекресток драконов - Aavlon, Castle of Dreams, Erik the Viking.

Перекресток драконов - Eureka!, Eye of Bain, Kentilla.

Перекресток - Sherlock, Apollo, Shadows of Mordor, Rigels Revenge, Temple of Terror, ID, That"s the Spirit, Return to Ithaka.

Ретро - Дж.Хардман, Э.Хьюзон. 40 лучших процедур.

Форум-игры - Insult Megademo, Catch 23, Livingstone, Rock Star ate my Hampster, НЛО-2: Дьяволы Бездны, Terminator 2, Venturama, The Spririts, Nipper, Sweewo"S World, King"s Bounti-2, Hacker 2, Black Magic, Satcom, Звёздное Наследие.

Форум - А.Гура. Кодекс программиста.

Форум - А.Стрельников. Перспективы развития ZX Spectrum.

Форум - В.Давыдов. По материалам, опубликованным в ZX-РЕВЮ: Некоторые вопросы, связанные с автостартом Бейсик-программ. Redefine Keys. Процедура печати 42 символов в строке. Процедура умножения HL=B*C. Доработка посекторных загрузчиков. Мини-драйвер дисковых операций.

Доклад по дисциплине
«Эффективная межкультурная и деловая коммуникация»
на тему «Профессиональная этика программиста»
Выполнил:
студент группы P4185
Захаров Иван
СПб, 2017

ПРОГРАММИ́СТ
Специалист по программированию, составлению программ для ЭВМ.
Наемный работник.
2/11

Я осознанно выбрал роль наемного работника, во всяком случае, на этом этапе своей жизни.
Я сформулировал этот кодекс прежде всего для себя, так как он облегчает мне жизнь и упрощает мои
взаимоотношения с работодателями.
3. Я применяю этот кодекс независимо от того, верят ли мне, что я его применяю.
4. Я не продаюсь в рабство, а поступаю на работу в фирму в соответствии с достигнутыми между мной и
фирмой договоренностями, налагающими определенные обязательства как на меня, так и на нее.
5. Фирма, в которой я работаю, - мне дом родной. Пока я в ней работаю.
6. Я во всех случаях сохраняю к ней лояльность, отстаиваю ее интересы, не ворую, не беру взяток, откатов,
подарков и не веду деятельности, которая может повлечь за собой ущемление ее интересов.
7. Вместе с тем, даже в интересах фирмы, я не пойду на нарушение моральных и этических норм, мною
признаваемых.
8. Я работаю на фирму, а не на конкретное лицо в ней, независимо от ранга этого лица.
9. Я отделяю своих друзей и родственников от своих руководителей и подчиненных, даже если это одни и
те же люди.
10. Я не работаю на другие фирмы, если это было оговорено при приеме на работу, но всегда сохраняю за
собой право на свободную творческую деятельность, если обратное не было оговорено особо.
1.
2.

3 /11

Моральный кодекс наемного работника

11.
Коммерческие тайны, доверенные мне фирмой, я не разглашаю и после своего увольнения.
12.
Я стараюсь улучшить эффективность работы фирмы во всех случаях, когда могу это сделать, независимо от своих
должностных инструкций. То, что поручено мне, я стараюсь сделать хорошо сам; в остальных случаях я даю рекомендации
по улучшению работы тем руководителям, которые хотят меня выслушать. Если мои предложения не принимаются, я
стараюсь оптимизировать работу в тех случаях и на тех участках, на которых могу.
13.
Я всегда информирую руководство о реальном состоянии дел и реальных прогнозах, даже если руководство этого и не хочет.
14.
Я соблюдаю дисциплину и субординацию, принятую на фирме.
15.
Я никогда не пытаюсь доказывать свою правоту деструктивными способами типа "сделаю все в точности так, как ты сказал, а
когда все рухнет, ты поймешь, кто был прав".
16.
Если я не главный управляющий фирмой, я отдаю себе отчет в том, что, хотя успехи и неудачи фирмы до некоторой степени и
зависят от моих усилий, но не в полной мере ими определяются.
17.
Тезис "Проблемы фирмы - мои проблемы" я не принимаю абсолютно, но только вместе с тезисом "Мои проблемы - проблемы
фирмы".
18.
Я всегда стараюсь выполнить обязательства, данные мной при приеме на работу или в процессе работы, если фирма
выполняет обязательства, данные мне.
19.
Я, по возможности, не продолжаю трудовые отношения с фирмой, если, на мой взгляд, она реально не нуждается в моих
услугах, даже если меня никто не гонит.
20.
Я отдаю себе отчет и не скрываю от руководства фирмы, что эффективно могу работать в одном направлении не более лет
пяти, после чего буду вынужден поменять сферу деятельности или фирму.. Потому что фирма, в которой я работаю, - мне дом
родной. Пока я в ней работаю.
4 /11

Моральный кодекс наемного работника

21. Я работаю на фирме на определенных условиях (оплата, режим работы и т.п.), оговоренных при приеме на
работу или общепринятых, и в определенных условиях (помещение, климат, возможности питания). Если
эти условия перестают выполняться или меня устраивать (по уровню ли зарплаты, количеству выделяемого
мне на работе кислорода, состоянию физического или морального климата или даже собственного
состояния) я могу покинуть фирму.
22. Я заранее предупреждаю руководство о своем желании покинуть фирму и, если руководство того хочет,
обсуждаю с ним условия, при которых я останусь.
23. Если же руководство фирмы без предварительного уведомления снижает мою зарплату или резко ухудшает
условия труда, я считаю себя вправе покинуть фирму также без предварительного уведомления.
24. Я никогда не шантажирую руководство угрозой своего увольнения.
25. Если я объявил о своем увольнении, то я увольняюсь, не обсуждая предложений, которые поступили после
этого объявления.
26. Перед увольнением я стараюсь сдать дела своему преемнику, если могу его обнаружить, и делаю все
возможное для того, чтобы мой уход не повлиял на состояние дел на фирме отрицательно.
27. Однако, если при расставании часть моей работы останется неоплаченной, я считаю себя вправе не
допустить использования результатов этой работы. Но без поджогов и диверсий.
5 /11

Моральный кодекс наемного работника

28. Я никогда не делаю специальных гадостей фирме, на которой работал, после своего увольнения:
не занимаюсь ее очернением,
не переманиваю сотрудников только с целью их ухода из фирмы,
не разглашаю ее коммерческих тайн,
не нарушаю ее имущественных, авторских и других прав,
не доношу и не навожу на нее,
не закладываю в компьютеры вирусы, не форматирую диски и не занимаюсь уничтожением или
сокрытием информации любыми другими способами,
не использую новое место работы для нанесения ущерба предыдущему.
29. Вместе с тем, я не отношу к деятельности, перечисленной в предыдущем пункте, и потому оставляю за
собой право:
высказывать свое мнение о состоянии дел на оставленной фирме и характеризовать ее персонал,
приглашать на работу сотрудников оставленной мною фирмы на новое место работы с предложением
лучших условий работы или оплаты труда, если эти сотрудники мне действительно нужны: после
увольнения я становлюсь для оставленной мной фирмы равноправным конкурентом на рынке
рабочей силы.
30. Я стараюсь отказаться на новом месте работы от выполнения функций, которые вступают в противоречие с
интересами оставленной фирмы, но, если это невозможно, действую в интересах своей новой фирмы.
Потому что фирма, в которой я работаю, - мне дом родной. Пока я в ней работаю.
6 /11

Этический кодекс ACM/IEEE

Этический кодекс ACM/IEEE
Ассоциация вычислительной
техники (англ. Association for Computing
Machinery, ACM) - старейшая и наиболее
крупная международная организация в
компьютерной области. Объединяет около 83
000 специалистов. Штаб-квартира находится
в Нью-Йорке.
Институт инженеров электротехники и
электроники - IEEE (англ. Institute of Electrical
and Electronics Engineers) (I triple E - «Ай трипл
и») -международная некоммерческая
ассоциация специалистов в области техники,
мировой лидер в области разработки
стандартов по радиоэлектронике,
электротехнике и аппаратному обеспечению
вычислительных систем и сетей.
Кодекс содержит восемь принципов,
связанных
с
поведением
и
решениями,
принимаемыми
профессиональными
программистами, включая практиков,
преподавателей,
менеджеров
и
руководителей высшего звена.
Кодекс распространяется также на
студентов
и
«подмастерьев»,
изучающих данную профессию.
7 /11

Этический кодекс ACM/IEEE.
Принципы.
1. ОБЩЕСТВО
Программисты должны действовать неукоснительно в интересах общества.
2. КЛИЕНТ И РАБОТОДАТЕЛЬ
Программисты должны действовать согласно интересам клиента и
работодателя, если они не противоречат интересам общества.
3. ПРОДУКТ
Программисты должны обеспечивать соответствие качества своих
продуктов и их модификаций наивысшим возможным профессиональным стандартам.
4. ОЦЕНКИ
Программисты должны поддерживать целостность и независимость своих
профессиональных оценок.
5. МЕНЕДЖМЕНТ
Программисты должны придерживаться этических подходов к управлению разработкой и
поддержкой программного обеспечения и продвигать эти подходы.
6. ПРОФЕССИЯ
Программисты должны поднимать престиж и репутацию своей профессии в интересах общества.
7. КОЛЛЕГИ
Программисты должны быть справедливы по отношению к своим коллегам, помогать им и
поддерживать.
8. ЛИЧНАЯ ОТВЕТСТВЕННОСТЬ
Программисты должны постоянно учиться навыкам своей профессии и способствовать
продвижению этического подхода к своей деятельности.
8 /11

Национальный кодекс деятельности в области информатики и телекоммуникаций

27 мая 1996 года в России был принят Национальный кодекс деятельности в области
информатики и телекоммуникаций.
Обязательства:
Любая деятельность в области информатики и
телекоммуникаций должна быть законной,
пристойной, честной и правдивой.
Каждое техническое и программное средство
должно разрабатываться с чувством
ответственности перед обществом и должно
соответствовать принципам добросовестной
конкуренции, общепринятым в коммерческой
деятельности.
Никакая деятельность не должна оказывать
отрицательного влияния на доверие
общественности к средствам информатики и
телекоммуникаций.
Не использовать чужое ПО без
лицензии/разрешения
Не нарушать тайны передачи
сообщения, не практиковать
вскрытие информационных

Не нарушать тайны передачи
сообщения, не практиковать
вскрытие информационных
систем и сетей передачи данных.
Не извлекать прибыль от
использования товарного знака
или символа, принадлежащего
другой фирме или продукции 9 /11

10. Этика программирования

Комментарии
“Если комментировать код - это хорошо,
значит, мы будем уделять комментариям
внимания ровно столько, сколько
потребуется, чтобы наш код стал лёгким для
чтения даже ребёнку.”
«Экстремальное программирование» К. Бек
Код
begin WriteLn(‘Hello, world’);end.
begin
WriteLn(‘Hello, world’);
end.
ВСЕГДА пишите математические знаки (+ - = * /) через пробел;
чем больше свободного места между строками - тем легче читать код.
https://xakep.ru/2003/09/29/19951/
10/11

11. Этика программирования

Именование переменных
Давайте им осмысленные имена, чтобы их имя примерно отображало
принцип действия переменной (лучше всего словами англ. языка).
Пример:
Edit14 -> edPassEnter(поле ввода пароля)
iCounter + iChan = iRoute;
Первая буква "i" обозначает тип переменной: I – Integer,
s – String, c – Char, b – Boolean и т.д.
Желательно в комментарии перед текстом программы описать, что
обозначает то или иное сокращение (ed: Edit; lb: Label).
https://xakep.ru/2003/09/29/19951/

Развитие средств вычислительной техники, коммуникаций и программных систем (Internet, телекоммуникации, распределенные системы,IPтелефония, компьютерные игры и обучающие программы) оказывает все большее воздействие на общество. Роль специалистов по программному обеспечению при этом все время возрастает. Они работают в определенном правовом и социальном окружении, находятся под действием, международных, национальных и местных законодательств.

Ясно, что программисты, как и специалисты других профессий, должны быть честными и порядочными людьми. Но вместе с тем, программисты не могут руководствоваться только моральными нормами или юридическими ограничениями, т.к. они обычно бывают связаны более тонкими профессиональными обязательствами:

    Конфиденциальность – программные специалисты должны уважать конфиденциальность в отношении своих работодателей или заказчиков независимо от того, подписывалось ли ими соответствующее соглашение.

    Компетентность – программный специалист не должен завышать свой истинный уровень компетентности и не должен сознательно браться за работу, которая этому уровню не соответствует.

    Защита интеллектуальной собственности – специалист должен соблюдать законодательство и принципы защиты интеллектуальной собственности при использовании чужой интеллектуальной собственности. Кроме того, он должен защищать интеллектуальную собственность работодателя и клиента. Внимание: создаваемая им интеллектуальная собственность является собственностью работодателя или клиента.

    Злоупотребление компьютером – программный специалист не должны злоупотреблять компьютерными ресурсами работодателя или заказчика; под злоупотреблениями мы здесь понимаем широкий спектр - от игр в компьютерные игрушки на рабочем месте до распространения вирусов и т.п.

        1. Кодекс этики ieee-cs/acm

В разработке таких этических обязательств ведущую роль играют профессиональные сообщества. Такие общества, как

    ACM–Association for Computing Machinery - Ассоцтация по вычислительной технике,

    IEEE – Institute of Electrical and Electronic Engineers – Институт инженеров по электротехнике и электронике

    CS- British Computer Society – Британское компьютерное общество

Члены этих организация принимают обязательство следовать этому кодексу в момент вступления в организацию

Кодекс содержит восемь Принципов, связанных с поведением и решениями, принимаемыми профессиональными программистами, включая практиков, преподавателей, менеджеров и руководителей высшего звена

Кодекс распространяется также на студентов и «подмастерьев», изучающих данную профессию

Кодекс имеет краткую и полную версии

        1. Кодекс этики - Преамбула

Краткая версия кодекса

      суммирует стремления кодекса на высоком уровне абстракции.

      полная версия показывает как эти стремления отражаются на деятельности профессиональных программистов.

      без высших принципов детали кодекса станут казуистическими и нудными;

      без деталей стремления останутся возвышенными, но пустыми;

      вместе же они образуют целостный кодекс.

Программные инженеры должны добиваться, чтобы анализ, спецификация, проектирование, разработка, тестирование и сопровождение программного обеспечения стали полезной и уважаемой профессией. В соответствии с их приверженностью к процветанию, безопасности и благополучию общества, программные инженеры будут руководствоваться следующими Восемью Принципами