Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.149.242] |
|
Страницы: (32) « Первая ... 30 31 [32] ( Перейти к последнему сообщению ) |
Сообщ.
#466
,
|
|
|
Цитата D_KEY @ То есть как бы ты ни собирал требования, как бы ни проектировал, все равно будут меняться требования и все равно нужно будет менять софт Ну надо же быть реалистом! В каждом конкретном случае. Да - неизменного нет. Начиная проектировать свою обертку, я задаюсь вопросом "какова вероятность, что процесс логина в SFTP сервер в ближайшее время изменится?" Исходные данные: "14 августа 2006 года было принято решение о прекращении работы над развитием протокола в связи с выполнением основной задачи проекта". Вывод: вероятность внесения новых изменений или требований - минимальная, если им только не взбредет в голову возобновить проект. Да, "никогда не говори никогда". Ну тогда мне, а вернее не мне, немножко не повезет. Но при такой практически нулевой вероятности - предусматривать последующий рефакторинг как минимум странно. Лучше уж к врачу паранойю лечить Wound, Киля, астанавись!!! Я тебя услышал. Выложу код, форкнешь и покажешь мне свое минималистическое количество строк. |
Сообщ.
#467
,
|
|
|
Цитата JoeUser @ В каждом конкретном случае. Согласен. Цитата Но при такой практически нулевой вероятности - предусматривать последующий рефакторинг как минимум странно. Лучше уж к врачу паранойю лечить Так тебе никто не предлагает обмазаться всеми паттернами проектирования и пытаться предусмотреть изменения Твой способ не быстрее и не проще способа с RAII, скорее наоборот. Это как с принципом избегать преждевременной оптимизации. Принцип прекрасен, но он не отменяет того факта, что не стоит и "пессимизировать", т.е. если у тебя есть два одинаковых по сложности способа что-то сделать, то логично выбрать тот, что оптимальнее. Это не будет преждевременной оптимизацией. |
Сообщ.
#468
,
|
|
|
Цитата D_KEY @ Твой способ не быстрее и не проще способа с RAII, скорее наоборот. Это всем апологетам RAII так хочется видеть. Потом начинаются конструкторы, деструкторы, смартпоинтеры ...а у меня всего лишь скромная метка для goto. Ты просто еще не проникся дзеном простоты, не понимаешь всего величия и фундаментальности безусловных переходов! Добавлено Цитата D_KEY @ Это как с принципом избегать преждевременной оптимизации. Принцип прекрасен, но он не отменяет того факта, что не стоит и "пессимизировать", т.е. если у тебя есть два одинаковых по сложности способа что-то сделать, то логично выбрать тот, что оптимальнее. Это не будет преждевременной оптимизацией. И я с тобой согласен тут. Но это если действительно одно лучше другого. А если нет? Только Бритва Оккама и спасает. |
Сообщ.
#469
,
|
|
|
Цитата JoeUser @ Посмею напомнить, что искусство программирования называется внезапно искусством. Код должен быть не просто правильным, он должен быть ещё и красивым.Ты просто еще не проникся дзеном простоты, не понимаешь всего величия и фундаментальности безусловных переходов! Лично мне вот пофик, кто где как какие паттерны заюзал. Если я смотрю код, и он прекрасен, значит всё было сделано правильно. Добавлено А если он ещё и работает... |
Сообщ.
#470
,
|
|
|
Цитата Qraizer @ Если я смотрю код, и он прекрасен, значит всё было сделано правильно. Субъективизм. Добавлено Цитата Qraizer @ Добавлено А если он ещё и работает... А вот это правильно |
Сообщ.
#471
,
|
|
|
Цитата JoeUser @ Это всем апологетам RAII так хочется видеть. Потом начинаются конструкторы, деструкторы, смартпоинтеры ...а у меня всего лишь скромная метка для goto. Ты просто еще не проникся дзеном простоты, не понимаешь всего величия и фундаментальности безусловных переходов! Это все можно сравнить со стиркой. У тебя подход какой - ты постирал все вещи, что были прям кучей - носки/белое/черное/цветное/джинсы/футболки там всякие - вытащил всю эту кучу из машинки, и бросил на полку. Вот твой подход. Дальше придет время взять шмотку - будешь рыться искать. Подход RAII - во первых стирать все по отдельности носки - отдельно, белое отдельно от черного, цветное отдельно, затем после стирки ты все вещи достаешь, выглаживаешь, и раскладываешь по полочкам, футболки к футболкам, брюки к брюкам, аккуратно сортируешь носки, засовываешь носок в носок(чтоб потом парные не искать), после чего раскладываешь на полочку. Вот примерно этим отличается твой подход от подхода RAII. Да в случае с RAII - приходится сортировать и выглаживать, чтоб потом пришел - взял что тебе нужно, пошел. А с твоим подходом - оно то с виду может и быстрее взять кучу одежды с машинки и кидануть на полку, только потом ты всеравно потратишь то же самое время, а то и больше - на поиск вещи и на ее глажку. Не понимаю как можно не понимать столь очевидных вещей. Написание даже полноценного RAII класса выходит быстрее - чем выделение ресурса руками, потом проверка всех условий, потом переход по метке(это же еще понять нужно где ее правильно воткнуть надо будет, чтоб и лишней не было и мало не было), и освобождение его руками. |
Сообщ.
#472
,
|
|
|
Цитата D_KEY @ Кстати, я иногда поражался способности некоторых людей быстро анализировать сложный запутанный код с большим количеством переходов и пр. Это да. Я, например, хочу мозг, способный удерживать в голове вот такой код (вот эта игра). Добавлено И кстати, JoeUser-у на заметку - даже в таком коде нет ни одного goto Добавлено Это не цель, а средство вообще-то. |
Сообщ.
#473
,
|
|
|
Цитата Gonarh @ А то. Вот представь, что ты увидел в продакшне вот сие:Субъективизм std::wostream(&std::wbuffer_convert<std::codecvt_utf8_utf16<wchar_t>>(std::cout.rdbuf())) << static_cast<std::wostringstream&&>( std::wostringstream() << std::wostream( &std::wbuffer_convert<std::codecvt_utf16<wchar_t, 0x10FFFF, std::little_endian> >(std::ifstream("u16.txt").rdbuf()) ).rdbuf() ).str() << std::endl; Добавлено Ведь круто в одну строку выдать на консоль файл в UTF-16, кастанув на лету в UTF-8? |
Сообщ.
#474
,
|
|
|
Цитата OpenGL @ Это не цель, а средство вообще-то. Для некоторых личностей - скорее цель |
Сообщ.
#475
,
|
|
|
Цитата JoeUser @ Это всем апологетам RAII так хочется видеть. Потом начинаются конструкторы, деструкторы, смартпоинтеры ...а у меня всего лишь скромная метка для goto. Так с меткой goto код становится сложнее. Хотя бы потому, что у меня в коде ее просто не существует. С конструкторами, деструкторами и смартпоинтерами код становится проще Цитата Ты просто еще не проникся дзеном простоты, не понимаешь всего величия и фундаментальности безусловных переходов! Я когда-то вполне себе писал на чистом си и использовал паттерн с goto для очистки ресурсов. И код такой видел часто. Но в си выбора нет. С RAII же все в разы проще. Добавлено Более того, в питоне я использую with. И в других языках я так же предпочитаю использовать управление ресурсами, максимально приближенное к автоматическому. RAII тут лучше всего. Ну разве что bracket pattern с ним может поспорить. Добавлено Цитата JoeUser @ Для некоторых личностей - скорее цель Тебе кажется. Тут конкретная задача - управление ресурсами. RAII как раз для этого. |