- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приведите уже в пример какое нибудь ПО
Любой средних размеров код сделанный с использованием jquery/ExtJS на стандартных компонентах и то же самое сделанное от начала и до конца на голом JS.
То же самое и с php. ПО на базе известного фреймворка более понятно чем нечто недокументированное и неописанное.
И то и другое естественно при прочих равных условиях. При желании можно даже Hello World написать так что никто не поймет.
Ну вот код (моя правка 1997 года неизвестного источника), который продолжаю использовать и сейчас. Правда не js, а це.
Вот еще хороший пример рождения не говнокода. Правда, многабукф.
Ввиду того, что на "це" не пишу, не могу не спросить - сильно он изменился за 15 лет?
https://www.djangoproject.com/
Кода там существенно больше 30К строк.
multipartparser.py
"""
Parse the POST data and break it into a FILES MultiValueDict and a POST
MultiValueDict.
Returns a tuple containing the POST and FILES dictionary, respectively.
"""
# We have to import QueryDict down here to avoid a circular import.
from django.http import QueryDict
encoding = self._encoding
handlers = self._upload_handlers
# HTTP spec says that Content-Length >= 0 is valid
# handling content-length == 0 before continuing
if self._content_length == 0:
return QueryDict(MultiValueDict(), encoding=self._encoding), MultiValueDict()
# See if the handler will want to take care of the parsing.
# This allows overriding everything if somebody wants it.
for handler in handlers:
result = handler.handle_raw_input(self._input_data,
self._meta,
self._content_length,
self._boundary,
encoding)
if result is not None:
return result[0], result[1]
# Create the data structures to be used later.
self._post = QueryDict('', mutable=True)
self._files = MultiValueDict()
# Instantiate the parser and stream:
stream = LazyStream(ChunkIter(self._input_data, self._chunk_size))
# Whether or not to signal a file-completion at the beginning of the loop.
old_field_name = None
counters = [0] * len(handlers)
try:
for item_type, meta_data, field_stream in Parser(stream, self._boundary):
if old_field_name:
# We run this at the beginning of the next loop
# since we cannot be sure a file is complete until
# we hit the next boundary/part of the multipart content.
self.handle_file_complete(old_field_name, counters)
old_field_name = None
try:
disposition = meta_data['content-disposition'][1]
field_name = disposition['name'].strip()
except (KeyError, IndexError, AttributeError):
Вы его вообще видели?
Ввиду того, что на "це" не пишу, не могу не спросить - сильно он изменился за 15 лет?
Нет, не менялся.
multipartparser.py
Вы его вообще видели?
Видел, видел :)
Докстринги - это способ генерации документации. А комменты в коде - это дружелюбие джанговского комьюнити. Если их убрать, код останется таким же ясным. Попробуйте поэкспериментировать на досуге.
_vb_,
old_field_name = None
counters = [0] * len(handlers)
Ну вам конечно как специалисту без этого понятно, по красоте кода что это значит, если комментарий убрать :)
Ну выше вы привели в пример его как проект где это вообще отсутствует :D Так приведите настоящий, без всяких "оговорок", где дружелюбие в самом коде и там правда не нужны эти пояснения :) А то выходит комьюнити так дружно, что все таки следует нормальным правилам и все документирует как и надо, а не режет :) Они кстати видели как строки то не экономят? Ужас один, вообще не думают об этом
p.s. Давайте честный пример :)
_vb_,
Ну вам конечно как специалисту без этого понятно, по красоте кода что это значит, если комментарий убрать :)
Речь совсем не о том, чтобы взять произвольный модуль и сразу сказать что и как он делает. Мне трудно представить себе, когда это может понадобится.
В код джанги я лазил всего два раза, обычно вполне хватает документации. Один раз нужно было сделать похожий функционал в неджанговом проекте, второй раз выяснить причину непонятных тормозов. В обоих случаях у меня было представление о проблеме, которую надо решить и какие-то свои варианты решения этой проблемы. И комменты как-то не понадобились. В одном фрагменте их не было, во втором я их и не читал - из кода и так все стало ясно.
Я не буду утверждать, что там нет запутанных мест, требующих комментов. Проект все таки достаточно большой. Может, просто повезло оба раза.
Я вам про другое пытаюсь сказать. Комменты в коде в подавляющем большинстве случаев это костыли, подпирающие неряшливый код. Но вам ведь победить надо, да?
Ну выше вы привели в пример его как проект где это вообще отсутствует :D Так приведите настоящий, без всяких "оговорок", где дружелюбие в самом коде и там правда не нужны эти пояснения :) А то выходит комьюнити так дружно, что все таки следует нормальным правилам и все документирует как и надо, а не режет :) Они кстати видели как строки то не экономят? Ужас один, вообще не думают об этом
Ну да, судя по кол-ву смайликов, требований и вопросов, вы настоящий интенет-воин и знатный боксер по переписке. Вы меня победили, признаю. Довольны? 🚬
Вы меня победили, признаю. Довольны?
Нет, все таки мне интересно увидеть пример того про что вы говорите т.е. мне бы это было интересно. Джанго хороший пример, но только никак не подходит и за довольно большого кол-ва комментариев
Мне вот приходится думать о нескольких разнородных вещах и отсутствие комментариев при какой угодно порядочности кода создают мне проблемы. Хорошо с популярными вещами как Джанго, они вроде как общепризнаны и доказывать что оно того стоит не нужно, но как быть с тем что ты видишь в первый раз и в принципе есть большие сомнения стоит оно того или нет, а вот момент когда нужно решать уже наступил
Я вам больше про то, что экономить время и не делать то что можно не делать по моему лучше
Всё таки зря модератор название темы сменил :)
и штраф мне выписал
---------- Добавлено 25.09.2012 в 20:00 ----------
Шутки шутками, но тормозящие смартфоны с 4-ядерными процами и 1 гиг оперативы делают меня печальным.
Или программы на .net реализующие окошки с двумя кнопками и простейшие операции который тянут за собой .net framework (сюда же мелкие утилиты под Linux в зависимостях которых куча либо какого-нибудь питона).
Лень - двигатель прогресса 🍾
Нет, все таки мне интересно увидеть пример того про что вы говорите т.е. мне бы это было интересно. Джанго хороший пример, но только никак не подходит и за довольно большого кол-ва комментариев
Нет скорее всего такого примера, если говорить о реальных проектах (не примерах). Речь об идеале, а он по определению недостижим. Можно говорить только о степени приближения к идеалу.
Но, повторюсь, недостижимость идеала вовсе не означает того, что к нему не нужно стремиться.
Мне вот приходится думать о нескольких разнородных вещах и отсутствие комментариев при какой угодно порядочности кода создают мне проблемы.
...
Я вам больше про то, что экономить время и не делать то что можно не делать по моему лучше
Не могу себе представить, как наличие комментов в коде может помочь определиться в отношении сколько нибудь большого проекта. Пусть те же 20-30К строк кода, из вашего примера. Тут уже играют роль другие вещи - наличие доков, какого то комьюнити и т.п. Даже график чекинов за последние полгода-год имхо больше скажет, если речь об опенсорсе.
Ну не сказал бы, что дле эталон говнокода. Там довольно мало "индусских решений", разобраться в коде проще, чем в большинстве популярных cms. Уязвимости безопасности правда частенько находят, ну так а кто неуязвим?