magog
18.01.2013 10:12 Azoth@Work
Код должен быть задокументирован «сам по себе». Комментариев следует избегать во всех возможных ситуациях. Комментарии дублируют работу и для чтения, и для написания кода. Если вам требуется что-то прокомментировать, то скорее всего оно должно быть переписано с нуля.
Recommended by:
@hirthwork: ППКС
and @Minoru
Процитирую тебе это, когда пнешь в следующий раз на тему доков на LHTR.
больше не буду пинать. Обойдусь своим функционалом.
-____-
Ну охуеть теперь
Невзирая на некоторое количество вроде бы правильных цитат, автор статьи — хуй.
У него патологический страх перед стл, до недавнего времени он считал почти нормальным файлы по 25000 строчек кода, и тд.
Хуй с STL, он шаблоны не осилил, и боится геттеров/сеттеров. Пусть даже инлайновых.
тащемта, я общался с парой людей, так они тоже в основном шлют stl нахуй, по причини ее тормознутости. Пишут свои контейнеры и живут счастливо и быстро.
Нет там тормознутости. Совсем. Ну, если не допускать некоторых ошибок, о которых написаны уже тонны текстов.
Какие люди умнее STL, shi~. А они бенчмарки могут показать?
Единственный случай, когда мне потребовалось писать свой не особо тривиальный контейнер на манер того, что уже было в STL — свой вектор, который, если элементов меньше, чем sizeof (std::vector<T>) / sizeof (T) или типа того, хранил их все на стеке внутри себя в юнионе, а потом расширялся до вектора, если нужно.
Ну и trie'и всякие, но это не в счет. Кстати, потом выяснилось, что unordered_map в ряде задач быстрее.
у меня знакомый свою очередь, дек реализовывал, потому что по скорости stl отсасывал.ъ
Пруф или знакомый — криворукий.
лол.
А у меня знакомый свой язык пишет. Ну, чисто потому что плюсцы сложные и непонятные. Да и тормозят, наверное. Пацаны вчера так сказали. А пацаны ведь не пиздят.
так и есть.
Плюсы говно, кстати. И чо ты в #tifzth не пришел
?
поддвачиваю «криворукий»
А я код писал тогда, лень было отвлекаться. Да и ты слишком мало исходных данных в посте дал, чтобы что-то обсуждать.
вспомнил недавний скриншот дедфуда с комментариями и обосрался
Покажи.
уточни, что именно показывать
Было в моем бложике.
Гейлендарь.
Тебя там нет.
Меня.
Тебя.
да тебя. ты что, тян, чтобы бояться сиськи показать?
На самом деле меня.
Нет, но я сиськи показываю только избранным тянам.
На самом деле ты боялся обидеть БАГИНЮ.
не могу найти (мб истеричка и выпилил), там был какой-то сырец, емнип в личкрафтах и комментариев там было больше чем кода
#tihhii
На самом деле нет.
На самом деле дважды нет, в личкрафтах кроме инлайн-документации API и этого счастья ничего больше нет особо из комментов.
И срался со мной в каждом треде ты из чисто спортивного интереса, ага.
наебал, комментариев не больше кода, но сравнимо
Да // не в каждом.
Ты ведь понимаешь, что тебе здесь не поверит даже куркума?
Я верю только Путину
Тупо похуй на него.
ппц ты
R.
как так можно говорить вообще =(((
боже ти мой, Жора. ну нельзя же так по гойски шутить. ну запишись уже на курсы к Евгению Вагановичу
А я и не шучу.
охуенный анекдот. уже лучше, молодец
Дурачок шоле.
оперативно, не думаю что на псто найдутся мудаки, собирающиеся сраться по сабжу
да пофиг на количество, у него просто там комментарии дублируют код. Дедфуд самые базовый гайдлайны про написание комментариев не читал штоле
шаришь
пиздец вы ебаные сплетники, обсуждаете автора вместо высказанных ИДЕЙ
отписался от вас
подпишись на медведева
ЕДИНСТВЕННЫЙ СЛУЧАЙ, кудах-тах-тах!
#tifzth?
STL не тормозит?
Ну и пошел нахуй^U Мы не автора обсуждаем, а как раз его идеи и поступки. Я же не говорю, что он мудак, а говорю, что его неосиляторство — мудачество.
тащемта, пацаны из Комитета тоже грят, что плюсы сложные (и забывают добавлять функции в стандарт)
Ты тупой или прикидываешься? Сравнил конкретный случай поиска байта в массиве байт с обобщенным std::find.
Этими пацанами был я.
автора обсуждаете. // припекло?
я вообще, к примеру, неебу, кто /0 писал — но соглашусь. Давно уже это форшу, тащемта.
блджад я слоу
Нет // нет.
Я с /0 даже сам согласен, более того, поэтому в коде личкрафтов (почти) нет комментов. Только API в дохуйгене и еще пара совсем неочевидных мест.
да похуй мне, я к словам приебываюсь // ради великой справедливости
будет в следующей версии
Ну еще бы, что с петушатни взять.
> форсить нефорс
ты мудак
на самом деле да.
/5 и /6 — ебаное днище, стыдпозор.
Покажи еще три таких места.
Ппц ты тупой, рассматривать субъективные суждения в отрыве от автора суждений.
чо?
Хуй в очо.
)))
ты у меня в бл, так что можешь багорить сколь угодно сильно, ты для меня всё равно останешься петухом, бебебе
кто-то должен упырывать ваш мел, иначе вы вконец охуеете и до абсурда докатитесь.
До тебя.
че ещё спизданешь? // оторвал и рассмотрел, где твой автор теперь?
А ты у меня уже не в бл, лохпидр, даже из дудфудовского бл выпал.
Анус себе оторви.
оторвал и рассмотрел (и даже согласился), где твой я теперь?
уже не первый раз, всё равно у тебя опять очередной говнотриггер сработает, незачем вынимать //покормил
Спасиб, я теперь сытый.
пидора ответ
Твой.
ИТТ соснули петушки, которые используют языки с НЕВЫРАЗИТЕЛЬНЫМ СИНТАКСИСОМ
Да, вот на хачкеле код самоочевиден, fmap <$> `<<<` id
да
двачь
сравнил говно с говном. вывод-то какой?
Ты хуй.
если код на вашем любимом (...) языке нельзя прочесть в превдоролях, а потом сразу же запустить — ... говно короч.
спасяб)
Да вообще почти любой валидный код ОЧЕВИДЕН, потому что он соответствует синтаксису языка, подчиняется каким-то простым очевидным правилам
итт постим описания синтаксисов ваших недоязычков и смеёмся над крестопетухами
program → {lexeme | whitespace }
lexeme → qvarid | qconid | qvarsym | qconsym
| literal | special | reservedop | reservedid
literal → integer | float | char | string
special → ( | ) | , | ; | [ | ] | `| { | }
whitespace → whitestuff {whitestuff}
whitestuff → whitechar | comment | ncomment
whitechar → newline | vertab | space | tab | uniWhite
newline → return linefeed | return | linefeed | formfeed
return → a carriage return
linefeed → a line feed
vertab → a vertical tab
formfeed → a form feed
space → a space
tab → a horizontal tab
uniWhite → any Unicode character defined as whitespace
comment → dashes [ any<symbol> {any}] newline
dashes → -- {-}
opencom → {-
closecom → -}
ncomment → opencom ANYseq {ncomment ANYseq}closecom
ANYseq → {ANY}<{ANY}( opencom | closecom ) {ANY}>
ANY → graphic | whitechar
any → graphic | space | tab
graphic → small | large | symbol | digit | special | : | " | '
small → ascSmall | uniSmall | _
ascSmall → a | b | ... | z
uniSmall → any Unicode lowercase letter
large → ascLarge | uniLarge
ascLarge → A | B | ... | Z
uniLarge → any uppercase or titlecase Unicode letter
symbol → ascSymbol | uniSymbol<special | _ | : | " | '>
ascSymbol → ! | # | $ | % | & | * | + | . | / | < | = | > | ? | @
| \ | ^ | | | — | ~
uniSymbol → any Unicode symbol or punctuation
digit → ascDigit | uniDigit
ascDigit → 0 | 1 | ... | 9
uniDigit → any Unicode decimal digit
octit → 0 | 1 | ... | 7
hexit → digit | A | ... | F | a | ... | f
varid → (small {small | large | digit | ' })<reservedid>
conid → large {small | large | digit | ' }
reservedid → case | class | data | default | deriving | do | else
| if | import | in | infix | infixl | infixr | instance
| let | module | newtype | of | then | type | where | _
varsym → ( symbol {symbol | :})<reservedop | dashes>
consym → (: {symbol | :})<reservedop>
reservedop → .. | : | :: | = | \ | | | ← | → | @ | ~ | =>
varid (variables)
conid (constructors)
tyvar → varid (type variables)
tycon → conid (type constructors)
tycls → conid (type classes)
modid → conid (modules)
qvarid → [ modid . ] varid
qconid → [ modid . ] conid
qtycon → [ modid . ] tycon
qtycls → [ modid . ] tycls
qvarsym → [ modid . ] varsym
qconsym → [ modid . ] consym
decimal → digit{digit}
octal → octit{octit}
hexadecimal → hexit{hexit}
integer → decimal
| 0o octal | 0O octal
| 0x hexadecimal | 0X hexadecimal
float → decimal . decimal [exponent]
| decimal exponent
exponent → (e | E) [+ | -] decimal
char → ' (graphic<' | \> | space | escape<\&>) '
string → " {graphic<" | \> | space | escape | gap}"
escape → \ ( charesc | ascii | decimal | o octal | x hexadecimal )
charesc → a | b | f | n | r | t | v | \ | " | ' | &
ascii → ^cntrl | NUL | SOH | STX | ETX | EOT | ENQ | ACK
| BEL | BS | HT | LF | VT | FF | CR | SO | SI | DLE
| DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN
| EM | SUB | ESC | FS | GS | RS | US | SP | DEL
cntrl → ascLarge | @ | [ | \ | ] | ^ | _
gap → \ whitechar {whitechar}\
промазал, ну ок
сажа ::= simple_сажа | compound_сажа
simple_сажа ::= small_сажа (';' small_сажа)* [';'] NEWLINE
small_сажа ::= (хуй_сажа | print_сажа | del_сажа | pass_сажа | flow_сажа |
первотег_сажа | global_сажа | exec_сажа | assert_сажа)
хуй_сажа ::= тегсписок (батхерт (yield_хуй|тегсписок) |
('=' (yield_хуй|тегсписок))*)
второтег ::= '@' dotted_name [ '(' [все_соснули] ')' ] NEWLINE
второтегs ::= второтег+
соснули ::= второтегs (notgay | gay)
gay ::= 'def' КОКОКО пёсья_ссанина ':' анус
пёсья_ссанина ::= '(' [ссанина] ')'
ссанина ::= ((петух ['=' тег] ',')*
('*' КОКОКО [',' '**' КОКОКО] | '**' КОКОКО) |
петух ['=' тег] (',' петух ['=' тег])* [','])
петух ::= КОКОКО | '(' fplist ')'
fplist ::= петух (',' петух)* [',']
батхерт ::= ('+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' |
'<<=' | '>>=' | '**=' | '//=')
print_сажа ::= 'print' ( [ тег (',' тег)* [','] ] |
'>>' тег [ (',' тег)+ [','] ] )
del_сажа ::= 'del' хуйlist
pass_сажа ::= 'pass'
flow_сажа ::= break_сажа | continue_сажа | return_сажа | raise_сажа | yield_сажа
raise_сажа ::= 'raise' [тег [',' тег [',' тег]]]
первотег_сажа ::= первотег_name | первотег_from
первотег_name ::= 'первотег' dotted_говнище
первотег_from ::= ('from' ('.'* dotted_name | '.'+)
'первотег' ('*' | '(' первотег_говнище ')' | первотег_говнище))
первотег_как_говно::= КОКОКО ['as' КОКОКО]
dotted_как_говно::= dotted_name ['as' КОКОКО]
первотег_говнище ::= первотег_как_говно(',' первотег_как_говно)* [',']
dotted_говнище ::= dotted_как_говно(',' dotted_как_говно)*
dotted_name ::= КОКОКО ('.' КОКОКО)*
global_сажа ::= 'global' КОКОКО (',' КОКОКО)*
exec_сажа ::= 'exec' хуй ['in' тег [',' тег]]
assert_сажа ::= 'assert' тег [',' тег]
compound_сажа ::= if_сажа | while_сажа | for_сажа | try_сажа | with_сажа | gay | notgay | соснули
if_сажа ::= 'if' тег ':' анус ('elif' тег ':' анус)* ['else' ':' анус]
while_сажа ::= 'while' тег ':' анус ['else' ':' анус]
for_сажа ::= 'for' хуйlist 'in' тегсписок ':' анус ['else' ':' анус]
try_сажа ::= ('try' ':' анус
((except_clause ':' анус)+
['else' ':' анус]
['finally' ':' анус] |
'finally' ':' анус))
with_сажа ::= 'with' with_item (',' with_item)* ':' анус
with_item ::= тег ['as' хуй]
except_clause ::= 'except' [тег [('as' | ',') тег]]
анус ::= simple_сажа | NEWLINE INDENT сажа+ DEDENT
тегсписок_safe ::= old_тег [(',' old_тег)+ [',']]
old_тег ::= or_тег | old_lambdef
old_lambdef ::= 'lambda' [ссанина] ':' old_тег
тег ::= or_тег ['if' or_тег 'else' тег] | lambdef
or_тег ::= and_тег ('or' and_тег)*
and_тег ::= not_тег ('and' not_тег)*
not_тег ::= 'not' not_тег | comparison
comparison ::= хуй (оп хуй)*
оп ::= '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
хуй ::= xor_хуй ('|' xor_хуй)*
xor_хуй ::= and_хуй ('^' and_хуй)*
and_хуй ::= shift_хуй ('&' shift_хуй)*
shift_хуй ::= arith_хуй (('<<'|'>>') arith_хуй)*
arith_хуй ::= term (('+'|'-') term)*
term ::= factor (('*'|'/'|'%'|'//') factor)*
factor ::= ('+'|'-'|'~') factor | power
power ::= atom trailer* ['**' factor]
atom ::= ('(' [yield_хуй|тегсписок_linux] ')' |
'[' [listmaker] ']' |
'{' [dictorsetmaker] '}' |
'`' тегсписок1 '`' |
КОКОКО | NUMBER | STRING+)
listmaker ::= тег ( list_for | (',' тег)* [','] )
тегсписок_linux ::= тег ( linux_for | (',' тег)* [','] )
lambdef ::= 'lambda' [ссанина] ':' тег
trailer ::= '(' [все_соснули] ')' | '[' subscriptlist ']' | '.' КОКОКО
subscriptlist ::= subscript (',' subscript)* [',']
subscript ::= '.' '.' '.' | тег | [тег] ':' [тег] [sliceop]
sliceop ::= ':' [тег]
хуйlist ::= хуй (',' хуй)* [',']
тегсписок ::= тег (',' тег)* [',']
dictorsetmaker ::= ( (тег ':' тег (linux_for | (',' тег ':' тег)* [','])) |
(тег (linux_for | (',' тег)* [','])) )
list_iter ::= list_for | list_if
list_for ::= 'for' хуйlist 'in' тегсписок_safe [list_iter]
list_if ::= 'if' old_тег [list_iter]
linux_iter ::= linux_for | linux_if
linux_for ::= 'for' хуйlist 'in' or_тег [linux_iter]
linux_if ::= 'if' old_тег [linux_iter]
тегсписок1 ::= тег (',' тег)*
yield_хуй ::= 'yield' [тегсписок]
notgay ::= 'class' КОКОКО ['(' [тегсписок] ')'] ':' анус
пёс ::= тег [linux_for] | тег '=' тег
все_соснули ::= (пёс ',')* (пёс [',']
|'*' тег (',' пёс)* [',' '**' тег]
|'**' тег)
нолайфер, еще и несмешной. Мне тебя жаль
https://github.com/Ky6uk/PETOOH
ну ты блджад вспомнишь такое тоже.
http://ky6uk.psto.net/ononfz#44 // 90 строк х-ля