avva: (Default)
[personal profile] avva
Вот чего я никогда не понимал в программировании, так это как люди помнят все подробности месяцы и годы после того, как они этим пользовались. Какой синтаксис тут, как называется функция там. У меня это все подчистую исчезает из памяти максимум через полгода, а обычно быстрее. Типа, полгода не писал на Перле - забыл ВСЕ. Понадобился язык снова - вспоминаю... не как с нуля, понятно, но не особо легче, чем что-то, чем 10 лет не пользовался.

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




Очень солидарен с этим - прочел и рассмеялся, потому что буквально вчера писал что-то мелкое на Питоне и не мог вспомнить, как брать длину строки.

Date: 2017-02-28 05:00 pm (UTC)
epimorphisms_split: (Default)
From: [personal profile] epimorphisms_split (from livejournal.com)
Следующая ступень — понять и рассказать, как получается такой код:

strncpy (dst, src, strlen(src));

Я который год бьюсь, а сформулировать не могу.

Date: 2017-02-28 05:33 pm (UTC)
From: [identity profile] gianthare.livejournal.com

Тю, берём стайл гайд, пишем там strcpy is unsafe, use strncpy instead, заставляем всех его прочитать, ждём полгода.

Date: 2017-02-28 05:45 pm (UTC)
From: (Anonymous)
Это-то понятно, но как в 90% случаев получается именно это, а не strcpy(dst, src, strlen(dst))? Казалось бы...

Date: 2017-02-28 05:58 pm (UTC)
From: [identity profile] gianthare.livejournal.com

При том, что в общем случае, dst это неициализированная память, я бы не стал вызывать на ней strlen...

Date: 2017-02-28 06:25 pm (UTC)
epimorphisms_split: (Default)
From: [personal profile] epimorphisms_split (from livejournal.com)
Как будто это может остановить человека, способного написать хоть первый вызов strncpy, хоть второй.

Date: 2017-02-28 07:51 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
О, вот это красиво! Говнокод месяца.

Date: 2017-02-28 08:36 pm (UTC)
From: [identity profile] mtyukanov.livejournal.com
Человек писал strcpy. Ему сказали -- надо strncpy. Ладно, сказали -- сделал, она же безопасная. Чем именно и при каком использовании она безопаснее -- не сказали (или пропустил мимо ушей).

Date: 2017-02-28 09:40 pm (UTC)
epimorphisms_split: (Default)
From: [personal profile] epimorphisms_split (from livejournal.com)
Фишка еще и в том, что она не безопасная ни фига, если костылем не подпереть.

Date: 2017-03-01 03:40 am (UTC)
From: [identity profile] e2pii1.livejournal.com
нормальный код - если надо не копировать терминирующий 0, а высокая эффективность неважна.

Date: 2017-05-06 11:32 am (UTC)
From: [identity profile] the-chiffa.livejournal.com
Это вы удачно пошутили:
https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00075&languageid=en-fr
https://www.embedi.com/files/white-papers/Silent-Bob-is-Silent.pdf

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
2829 30 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 1st, 2026 06:22 pm
Powered by Dreamwidth Studios