утин
кек, сработало
с днем наименований
Bogdan
абсолютно каждый пункт который ты перечислил это все субьективные понятия
Bogdan
поэтому понятие говнокод это субьективное понятие и нет идеального кода
Bogdan
просто есть определенные требования или рекомендации по написанию кода (но опять же это тоже спорная вещь), но для простоты рекомендуют их придерживаться
Bogdan
+ зависит как оно будет взаимодействовать с другими частями программы
Alexander
поэтому понятие говнокод это субьективное понятие и нет идеального кода
я писал как-то серию статей на эту тему. есть обьективные критерии говнокода.
Bogdan
я писал как-то серию статей на эту тему. есть обьективные критерии говнокода.
обьективные критерии субьективного понятия это гениально что могу сказать
Bogdan
есть и следующая ступень которая ещё более субьективная называется шизокод
Alexander
обьективные критерии субьективного понятия это гениально что могу сказать
я это написал для того чтоб опровергнуть суждение "говнокод - субьективное понятие". я считаю что есть обьективные критерии, а потому говнокод может быть обьективным понятием
Bogdan
это всё сложные философские вопросы на которые нет правильного ответа
Bogdan
но конечно лучше придерживаться всяких конвенций, стайл кодов и тд что бы как минимум тебя не выперли с работы
Bogdan
а поддерживаемость часто сложно оценить прямо здесь и сейчас ибо может зависеть от дальнейших модификаций
Alexander
окей но твоё мнение тоже субьективное в таком случае
ну давай обьективные критерии: 1) вероятность совершения ошибки в куске кода. например if (true) doSmth; более говнокодисто чем if (true) { doSmth } 2) средняя скорость прочтения\расшифровки кода человеком тут влияют цикломатическая сложность, название переменных, наличие или отсутствие глобальных переменных, влезает ли метод банально на экран 3) побочные эффекты nuff said 4) ресурсоемкость
Bogdan
спорно, везде разные требования где-то наоборот рекомендуют не злоупотреблять блоками
Bogdan
и да ты пропустил точку с запятой
Alexander
и да ты пропустил точку с запятой
считай жаваскриптом, там их можно пропускать ггг
Bogdan
окей буду котлином считать тогда лучше
Bogdan
там тоже можно пропускать
Bogdan
что больше упирается в зависимость от алгоритма
Alexander
спорно, везде разные требования где-то наоборот рекомендуют не злоупотреблять блоками
у блока с ифом есть одно важное преимущество - ты СРАЗУ видишь ветку исполнения. и точно знаешь как например туда добавить еще одну или 10 команд. таким образом убирается частный случай который уменьшает читаемость кода засчет повышения разнообразия
Alexander
это проблема для того кто первый раз IDE открыл
нет, т.к. ide опирается на цвет для передачи информации, а не символ. символ лучше - он быстрее распознается глазом + не забывай есть люди с проблемами различия цветов и их больше чем кажется. я например могу путать голубой и салатовый
Alexander
2 это код стайл, он индивидуален у каждой компании или языка (есть базовые рекомендации, а есть специфические)
нет, это обьективные критерии восприятия - человеку трудно одновременно оперировать более чем 7 обьектами в голове. а чаще это от 4 до 7. поэтому цикломатическая сложность и вложенность более 2х уровней ВСЕГДА тяжелее к восприятию
Bogdan
короче тут ключевое слово по твоему личному мнению потому это бессмысленная дискуссия
Alexander
точно так же названия переменых. что более читаемо - n или numberOfRecords? \
Alexander
какой метод быстрее воспринять - тот, который влезает на экран без скроллинга или который не влезает на экран?
Alexander
это вполне обьективные критерии
Альф
Есть базовые фишки психологии Понятия, принципы, архитектура , ООП - это все для тебя шутка? Это все было придумано для упрощения понимания и предотвращения говнокода в проектах, а так же повышения эффективности командой (и не только) разработки
Bogdan
есть рекомендации я не говорил что их не надо придерживаться
Альф
Покажи мне чё то реально идеальное что признают все? Никто не сможет этого сделать ни в рамках кода ни в рамках жизни 🤷‍♂
Альф
И я не чел, я Альф
Альф
А вообще, мы ушли от темы
Alexander
говнокод это как баги. доказать что багов нет - нельзя, точно так же что нельзя доказать что код норм. а вот обратное возможно - можно найти баг. можно найти обьективную проблему в коде
Альф
Так вот вернёмся к тому, что у питона будет участь пыхи На самом деле время покажет Но это точно не значит, что питон плохой инструмент - у него всегда мне кажется будут высокоуровневые разработчики которые будут топить за квалификацию (чистый код - это тоже один из показателей квалификации специалиста)
Alexander
вот хороший видос демонтсрирующий гавнокод и не гавнокод, буквально первые 10 минут, рекомендую https://www.youtube.com/watch?v=AUtrEYnm0ts
Alexander
заоджно может меня в зале увидите
Альф
О, я ещё могу скинуть как чувак написал телеграм бота на питоне в 10 000 строк в одном файле без ООП)
Bogdan
часто оно даже там и не надо
Alexander
Bogdan
но конечно в одном файле так себе идея банально потому что это никто не одобрит
Bogdan
но если для себя то пофиг
Альф
ну кстати ООП в питоне далеко не мастхэв
С этим спорить не буду, конечно
Альф
Ещё видел как на J's чувак создал коллекцию - не уверен правда какую, так вот количество строк в этой коллекции переваливало точно за 2000 , а коллекция обрабатывалась циклом for
Bogdan
О, я ещё могу скинуть как чувак написал телеграм бота на питоне в 10 000 строк в одном файле без ООП)
если он это писал сугубо для себя, оно работает и его устраивает то пофиг вообще это его личный проект, а если он хочет подобный проект внедрять в трудоустройство или бизнес то конечно идея так себе ибо у каждой компании будут свои требования
Bogdan
точнее даже не так, для такого количества данных он не оптимальный
Альф
На фрилансе накатал бота за который заплатили. Потом следующий программист ох*ел когда ему сказали ускорить бота.
Альф
ну в таком случае странно что вообще приняли ибо у заказчика всегда тонна требований
Наверное заказчик попался не искушённый , можешь погуглить историю, она интересной мне показалась Яб никогда не поверил что это рабочий проект если бы не увидел своими глазами)
Robert
не сработало
Конечно. У тебя файл "'Win", а удалять ты пытаешься "Win".
Azamat
Конечно. У тебя файл "'Win", а удалять ты пытаешься "Win".
нет, я пытался и "'Win'" удалить, но не получалось
Bogdan
как я люблю т9
Альф
я удивлен не с того что это рабочий проект был, а с того что заказчик нафиг не послал за такую реализацию
Я думаю заказчик не полез под капот ибо насколько я понял из рассказа бот был типа под "ключ" А если полез и не послал - значит совсем не знал как реально должно быть )
Robert
нет
Дат. https://t.me/devworden/470991
утин
оно в «» помещает то что типо может конфликтовать например все с кириллицей
утин
Bogdan
я не понял почему у него ' подчеркнула командная строка
Robert
оно в «» помещает то что типо может конфликтовать например все с кириллицей
Астерисками любые символы выделяются до или после Win, поэтому и сработало. Хотя в целом так лучше не делать на случай, если в той же директории будет что-то с названием, в котором тоже будет Win.
Robert
привет
Регистрозависимость, привет, давно не виделись.
утин
а бля, бля я теперь понял че у него не сработало
Bogdan
ну как бы у него файл с большой буквы называется