Здравствуйте, Unmanaged, Вы писали:
U>Привет.
U>Заранее извиняюсь, если поднимаю старую тему — поиском не нашёл. U>Речь пойдёт о корреляции между стилем кода программиста и качеством этого же самого кода.
IMHO, к стилю есть единственное требование — девелопер не должен мешать разные стили в одном коде.
Персонально, я не люблю, когда используют tab-ы, вместо space-ов для отступов. Настройки величины tab-ов могут быть разными, потому layout кода может плыть в разных редакторах. А это нехорошо.
Да, сходите поотрывайте руки товарищам из комитета стандартизации С++. Тем самым, которые такого стиля в stl понапихивали. Всяким там Страуструпам, Саттерам, Абрахамсам и иже с ними. Всякие там lexicographical_compare, bidirectional_iterator_tag панаписывали панимаишь ли
Не путайте код и сэмплы. Сэмплы как сэмплы. Но напостоянку и в больших проектах — такой Кнут нам не нужен Вы что ж думаете, кто-то будет брать Кнута как С++ кодера ? Порадовали, право слово.
Здравствуйте, The Lex, Вы писали:
TL>Без обид! Но именно так думают а) начинающие руководители; б) отъявленные самодуры.
ну.. яб не стал ровнять начинающих руководителей и самодуров
но, в целом, подмечено очень верно. какой-то юношеский максимализм у товарища присутствует. хотя, возможно, эдакая антиреклама фирмы, сейчас кто либо брякнет название компании автора топика, и прослывет она еще одной нежелательной для прохождения собеседований компанией.
Здравствуйте, Unmanaged, Вы писали:
U>За (1) так вообще руки оторвал бы. U>Вот (2) ещё куда ни шло, но тоже убого.
Шеф, это называется не стиль программирования, а стиль именования. В разных фирмах в разных проектах он разный.
Переменная может называться m_my_variable, myVariable, mMyVariavbe, MyVariable и т.д. Отрывать надо руки не за то, что человек привык к такому способу наименования, а за то, что он не следует таковым стандартам в конкретном проекте.
Я лично под стилем программированая подразумеваю не скобочки, отступы и т.д (повторяю, в команда этот стиль должен быть ОДИН У ВСЕХ), а некоторые другие вещи, например:
Вот за такой стиль я сейчас убить готов, хотя в свое время именно так я и писал.
А другой тоже самое уложит вот так:
if (isInputParametersIncorrect(a,b)) {
return null;
}
for (int i=0; i<SOME_CONSTANT; ++i) {
doSomethingComplexInOtherMethod(i);
}
Вот это и есть стиль кодирования, а не скобочки. Как и привычка использовать глобальные переменные, магические числа, копи-пейст, наследование прямоугольника от квадрата (или наоборот) и т.д.
Здравствуйте, _Obelisk_, Вы писали:
_O_>Персонально, я не люблю, когда используют tab-ы, вместо space-ов для отступов. Настройки величины tab-ов могут быть разными, потому layout кода может плыть в разных редакторах. А это нехорошо.
Это справедливо только тогда, когда в коде, в котором используется табуляция, кто-то вносил исправления и пренебрег использования табуляции, вставив туда пробелы по своему усмотрению (согласно собственным настройкам). Это есть нарушение стиля, и именно это приводит к плаванью layout. А код с чистыми табуляциями видится лучшим как минимум с той точки зрения, что не у всех одинаковые широкоформатные мониторы, и кому-то захочется изменить настройки IDE так, чтобы на его компактном мониторе Tab соответствовал не стандартным 8 символам, а, например, 3. Код останется прекрасно читабельным и при этом не будет постоянно "скрываться" за правой границей монитора.
Здравствуйте, _Obelisk_, Вы писали:
_O_>Персонально, я не люблю, когда используют tab-ы, вместо space-ов для отступов. Настройки величины tab-ов могут быть разными, потому layout кода может плыть в разных редакторах. А это нехорошо.
Это легко решается. Делается комбинация — табами выделяется отступы, а все выравнивание после отступов ведется пробелами. Например:
(точки читать как пробел)
Здравствуйте, SP_, Вы писали:
SP_>Да, сходите поотрывайте руки товарищам из комитета стандартизации С++. Тем самым, которые такого стиля в stl понапихивали. Всяким там Страуструпам, Саттерам, Абрахамсам и иже с ними. Всякие там lexicographical_compare, bidirectional_iterator_tag панаписывали панимаишь ли
Понаотрывать руки надо за то, что стили в MFC один, в STL другой, в WinAPI третий, в unix kernel четвертый. В результате какой бы стиль для проекта не выберешь — один черт однообразия не будет, а будет мешанина из стилей. Плохи не стили сами по себе, а то, что очень проблематично на C++ написать проект в едином стиле, используя не самописные библиотеки.
Но тут не разработчики виноваты, а то, что исторически сложилось, что над стилями стали задумываться тогда, когда уже много чего стало написано, и никакой переделке уже не подлежит. А виноват в этом не Страуструп, а Керниган с Ритчи, но Си писался так давно, что винить их в том, что сразу не задумались над стилем кодирования, рука не поднимается.
Здравствуйте, Uzumaki Naruto, Вы писали:
UN>Эта проблема решается настройками IDE (в частности в студии есть опция — замена tab на пробел и разме 1 tab в пробелах)
R>есть такое дело, но вырабатывается стиль годами и качество кода тоже вырабатывается годами..
Дело в том что качество кода и стандарт принятый на конкретно вашей фирме вещи вообще говоря разные. Посмотрите на стиль написания например STLPORT, совсем не похож нп ядро винды. Но не ламерье же ее делали
R>лично я еще смотрю на качество написания кода на бумаге
Ну я например системный архитект. Когда беру в руки ручку очень трудно вспомнить как ею двигать чтобы на бумаге появлялись нужные буквы Что же, я плохой программист?
Как много веселых ребят, и все делают велосипед...
Здравствуйте, elmal, Вы писали:
E>Это легко решается. Делается комбинация — табами выделяется отступы, а все выравнивание после отступов ведется пробелами. Например:
R>>лично я еще смотрю на качество написания кода на бумаге O>Ну я например системный архитект. Когда беру в руки ручку очень трудно вспомнить как ею двигать чтобы на бумаге появлялись нужные буквы Что же, я плохой программист?
от задачи зависит, на несложных думаю вполне хватит и неумеющего писать системного архитектора, слава богу сейчас не те времена.. не царские
Здравствуйте, elmal, Вы писали:
E>Но тут не разработчики виноваты, а то, что исторически сложилось
Это понятно. Но таки stl в середине 90-х писалась, а тогда уже над стилями думали за бугром. И если выбрали такой_вот_стиль, то сделали это явно не с бодуна, после оценки альтернатив. А топикстартер от этого стиля плюется. Вот и у меня возникла мысль, может что-то в консерватории поправить
За это руки оторвать. Сразу. Нафига мне прорываться через пятиметровый список параметров, если я хочу видеть КАК оно работает. Хотя, конечно, это сильно зависит от функции.
Да. И у MS в каждом файле свой "стиль". Вы лучше SDK полистайте, а не пиратские сырцы фиг знает чего.
Здравствуйте, Unmanaged, Вы писали:
U>Все понаставили друг другу плюсиков и, довольные своими свершениями, отправились спать . U>Извините, это просто смешно со стороны выглядит.
И лишь один гордый, непонятый и непобежденный Unmanaged остался на страже единственно верного учен.... простите, стиля
Здравствуйте, bkat, Вы писали:
B>>>Я, к примеру, понятия не имею как выглядит стиль исходного кода ядра Винды. B>>>Никогда не интересовался.
U>>Вот именно. U>>Зачем мне человек, который ни разу не заглядывал туда?
B>Ну так где мне его найти? B>Подкинь ссылку.
see WDK/DDK. там идет код реально работающих в Windows драйверов, то есть часть ядра Windows.
это к вопросу о популярном у не-kernel разработчиков заблуждении, что код ОС недоступен простным смертным легально. А ведь есть еще и университетские программы по которым практически весь код ОС предоставлен каким-то универам, вроде Пражского для обучения\изучения.
Похоже, именно это (см 1й мой параграф) имел ввиду (конечно наряду с подглядыванием в "нелегально утекшие" исходники 2000) топикстартер. Он прав в том что любой специалист в ядре не мог этого (просмотр DDK) не делать и не мог не знать как выглядят куски ядра ибо на них натыкаешься постоянно в процессе гугления и без подглядывания в нелегальный материал.
другой вопрос что в той форме что он пытается донести свою позицию до форума — это гарантированно вызывает негативную реакцию. Да и другие вещи вроде идеального стиля весьма спорны — что мы и наблюдаем в ветке
... << RSDN@Home 1.2.0 alpha rev. 0>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, Unmanaged, Вы писали:
U>>За (1) так вообще руки оторвал бы. U>>Вот (2) ещё куда ни шло, но тоже убого. E>Шеф, это называется не стиль программирования, а стиль именования. В разных фирмах в разных проектах он разный. E>Переменная может называться m_my_variable, myVariable, mMyVariavbe, MyVariable и т.д. Отрывать надо руки не за то, что человек привык к такому способу наименования, а за то, что он не следует таковым стандартам в конкретном проекте. E>Я лично под стилем программированая подразумеваю не скобочки, отступы и т.д (повторяю, в команда этот стиль должен быть ОДИН У ВСЕХ), а некоторые другие вещи, например: