341 Отредактировано stdlib (23.10.2015 10:38:11)

Нам лектор по джаве рассказывал, что такое правильно написанный код:
- писали они крупное коммерческое ПО, очень длинное, закочнили, продали компании, как к ним пришла другая и грит, вот так и сяк, нам понравилось, что вы сделали для другой корпорации, сделайте нам такое же, только мы хотим еще вот это, это и то.
Чтобы сделать это, это и то у программистов ушло 15 мин (вот что значит хорошо написанный код) и 1 день тестирования. Компания на это сделке срубила около миллиона.

342

stdlib пишет:

Хороший код - это когда глянул на код, пробежал глазами, и сразу понятно, что программа делает, куда какая переменная идет, что функция описывает и т.д. В хорошем коде тело функции в среднем занимает от 5 до 7 строчек, имеет название в камэлКэйс и равные отступы (обычно по 3 пробела). Иф стейтменты не уползают право, что приходится проматывать экран, а код не похож на спагетти, которое утекает за экран монитора. Еще хороший код желательно написан на ООП, с использованием полиморфизма, наследование, инкапсуляцию, абстракт классы, и имеют заданные прототипы.

Вы сами-то верите, что программа может соблюсти каждое из этих требований? Я - нет.

343 Отредактировано stdlib (23.10.2015 10:46:16)

kaprizka пишет:

Вы сами-то верите, что программа может соблюсти каждое из этих требований? Я - нет.

Да, в нашем универе все студенты так пишут.
Это не сложно, просто чтобы освоить ООП, требуется время и контроль лектора, либо самостоятельная усидчивость. Кто же спорит, что это самому выучить нельзя. Можно, но мне пока не попадались такие индивиды.

344

kaprizka пишет:

Это философия.
А на самом деле если применяешь термин "говнокод", то должен понимать его значение.
Пока что я зашёл на сайт http://govnokod.ru/ и вижу, что если код зависит от версии компилятора, то он говнокод. Другие варианты пока не понял.

http://lurkmore.to/%D0%91%D1%8B%D0%B4%D … 0%BE%D0%B4

345

kaprizka пишет:

Вы сами-то верите, что программа может соблюсти каждое из этих требований? Я - нет.

Можно, если хватает ресурсов.

346

stdlib пишет:

Просто код, который пишут в корпорациях, это не код на 10,000 строчек. Это код на миллион строчек и более. Там работают в командах и никто в твоей суперстайлписанине разбираться не будет - тебе просто выдают листочек "как принято" и все, кодишь в том стиле, в каком надо.

Хорошо если выдают. default/big_smile

347 Отредактировано keal (23.10.2015 10:52:04)

kaprizka пишет:

Это философия.
А на самом деле если применяешь термин "говнокод", то должен понимать его значение.
Пока что я зашёл на сайт http://govnokod.ru/ и вижу, что если код зависит от версии компилятора, то он говнокод. Другие варианты пока не понял.

http://govnokod.ru/9512
Простой пример говнокода.

348 Отредактировано keal (23.10.2015 11:03:39)

keal пишет:
kaprizka пишет:

Вы сами-то верите, что программа может соблюсти каждое из этих требований? Я - нет.

Можно, если хватает ресурсов.

Все эти требования можно условно разделить на две части. Сoding convention - наименование переменных, классов, порядок объявления, отступы и т.д. И архитектура проекта - применение паттернов, метапатернов и просто свои правила по назначению и применению классов.

Если в проекта такое уже есть, то все очень просто. Если надо писать с нуля, то вся проблема в отсутствии времени для создания всех этих условий. Тут уж от менеджента зависит. Ну можно еще параллельно все это делать. Но это больше от желания программистов зависит. Или от опыта, чтобы сходу написать архитектуру для конкретного проекта и его задач.

Не был в отделе, где пишут проги для самолетов, но там говорят все очень жестко.

349

Вы меня вообще тут удивили, что коды могут быть написаны по-разному default/smile)
Шайтанама!

350

Ingaga пишет:

Вы меня вообще тут удивили, что коды могут быть написаны по-разному default/smile)
Шайтанама!

шпили-вили)))

351

Ingaga пишет:

Вы меня вообще тут удивили, что коды могут быть написаны по-разному default/smile)
Шайтанама!

муахахахахаааааа

352

stdlib пишет:

Нам лектор по джаве рассказывал, что такое правильно написанный код:
- писали они крупное коммерческое ПО, очень длинное, закочнили, продали компании, как к ним пришла другая и грит, вот так и сяк, нам понравилось, что вы сделали для другой корпорации, сделайте нам такое же, только мы хотим еще вот это, это и то.
Чтобы сделать это, это и то у программистов ушло 15 мин (вот что значит хорошо написанный код) и 1 день тестирования. Компания на это сделке срубила около миллиона.

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

353 Отредактировано euro (23.10.2015 16:38:15)

kaprizka пишет:

А может, приведёте примеры говнокода и "хорошего и красивого кода"?
Есть подозрение, что последний - тоже на самом деле говнокод.

судя по своему опыту работы с разными программистами, могу сказать что говнокодом для них обычно считается - отсебятина, без нужной документации. т е сложно такой "код" потом другим читать и как-то соединять в общий проект. решается все обычно элементарным менеджментом и толковой архитектурой. вообще при любом программерском проекте нужно брать именно уже менеджера, чтобы тот под себя нашел команду, какая ему нужна и выдал им четкие указания как именно что писать и оформлять.

354 Отредактировано euro (23.10.2015 17:08:19)

ну и еще прекрасное на мой взгляд про программеров.
по "тестовым заданиям"обычно ищут кодеров оутсорсинговых.
для нормальных проектов - отбирают именно по образу мышления и умению быстро адаптироваться к постоянно меняющейся сфере.

Spoiler

Многие стартап-фаундеры часто задают вопрос другим бомжам^W^W: как же искать нормальных программистов? И какие вопросы на интервью им задавать?
Лично я просветлел и всё понял. На следующем интервью я не буду мучать кандидатов тонкостями спецификации Scala (один хрен никто не читал, а если читал и не работал притом в EPFL — уже вызывает подозрение). Не задам ни одного пазла (терпеть не могу пазлы и особенно тех, кто троллит ими на интервью). Ну и само собой, мне нафиг не интересны вопросы по специальности — программист? код на гитхабе есть? ОК, этого достаточно, квалификационный раунд пройден (я, надеюсь, можно не объяснять, что если человек не выкладывает что-нибудь на гитхаб или там битбакет — он не программист, а неведомо кто). Вместо этого я буду задавать вопросы такого порядка:
— На котором из спутников Юпитера вулканы, а на котором — подземный жидкий океан?
— В чём состоит «гигиеническая гипотеза» в иммунологии?
— Основные различия civil law и common law?
— Для каких задач используются квантовые компьютеры от D-Wave и почему именно здесь у них преимущество над классическими методами?
— Как примерно видели мир Платон, Пифагор, Гераклит и Аристотель? Сформулируйте отличие их метафизики в нескольких предложениях.
— Что такое ультрафильтр?
— У вас 48 часов, и злобный заказчик поставил вам задачу сделать вызывающий доверие и работающий клон фейсбука, google search или написать новый браузерный движок (на выбор). Как бы вы решили такую задачу?
— Какие новые технологии батарей сейчас проходят обкатку и вот-вот появятся на рынке?
— Опишите крупномасштабную структуру Вселенной.
Если человек сможет дать сколько-нибудь адекватные ответы на большую часть этих вопросов, то он годится для того, чтобы работать программистом в стартапе (сомнительное развлечение, прямо скажем). Потому что поток новых технологий, которые требуется осваивать каждые полгода, настолько стремителен, что без хорошего естественного любопытства тут абсолютно нечего делать, а любопытный человек легко ответит на все эти вопросы, потому что из любопытства про это читал. Y si no, no. Есть много других привлекательных профессий. (c)

355

euro пишет:

— На котором из спутников Юпитера вулканы, а на котором — подземный жидкий океан?

Вулканы на Ио, а жидкий океан то ли на Европе, то ли на Ганимеде, а может, и на обоих.

euro пишет:

— В чём состоит «гигиеническая гипотеза» в иммунологии?

Понятия не имею. Но предполагаю, что в интернете это найти можно.

euro пишет:

— Основные различия civil law и common law?

А юрист его знает!

euro пишет:

— Для каких задач используются квантовые компьютеры от D-Wave и почему именно здесь у них преимущество над классическими методами?

Понятия не имею, кто такое D-ware, а квантовые компьютеры нужны для взлома шифров (дискретное логарифмирование, разложение на множители, вычисление функции Эйлера для больших чисел и т.п.) и для быстрого поиска в несортированном списке.

euro пишет:

— Как примерно видели мир Платон, Пифагор, Гераклит и Аристотель? Сформулируйте отличие их метафизики в нескольких предложениях.

Про Гераклита ничего не знаю. Слышал это имя, но значния не придавал.
Как видел мир Платон, представляю смутно. По-моему, в виде иерархии, которую он идеализировал в мифе про Атлантиду.
Пифагор видел мир как набор чисел. Так и сказал: "Всё есть число".
Аристотель: "Каждая вещь стремится занять подобающее ей место и остановиться". Там есть ещё высказывания, опровергнутые Галилеем, но мне лень их приводить.

euro пишет:

— Что такое ультрафильтр?

Впервые вижу это слово. И даже в гугл лень лезть за значением. А самому догадываться тоже лень, потомучто легко ошибиться - гипотез-то имеется несколько.

euro пишет:

— У вас 48 часов, и злобный заказчик поставил вам задачу сделать вызывающий доверие и работающий клон фейсбука, google search или написать новый браузерный движок (на выбор). Как бы вы решили такую задачу?

Я бы её не решил.

euro пишет:

— Какие новые технологии батарей сейчас проходят обкатку и вот-вот появятся на рынке?

Понятия не имею.

Spoiler

тут мне захотелось добавить эффектную фразу, но я подумал и не стал её добавлять.

Когда-то интересовался этим вопросом, а сейчас перестал.

euro пишет:

— Опишите крупномасштабную структуру Вселенной.

Блинчики!


.

356

keal пишет:

http://govnokod.ru/9512
Простой пример говнокода.

Некая переменная инвертируется в случае ненулевого значения другой переменной (по смыслу имени похожей на функцию, но нет скобок).
Я допускаю, что это - говнокод. Потомучто лишнее присваивание в случае нулевого значения onExpandClick.

Но ты-то сообщал о существовании не говнокода!
Кода в миллион строк, умещающегося в 7 строк текста и при этом понятного.

357

Spoiler
kaprizka пишет:
euro пишет:

— На котором из спутников Юпитера вулканы, а на котором — подземный жидкий океан?

Вулканы на Ио, а жидкий океан то ли на Европе, то ли на Ганимеде, а может, и на обоих.

euro пишет:

— В чём состоит «гигиеническая гипотеза» в иммунологии?

Понятия не имею. Но предполагаю, что в интернете это найти можно.

euro пишет:

— Основные различия civil law и common law?

А юрист его знает!

euro пишет:

— Для каких задач используются квантовые компьютеры от D-Wave и почему именно здесь у них преимущество над классическими методами?

Понятия не имею, кто такое D-ware, а квантовые компьютеры нужны для взлома шифров (дискретное логарифмирование, разложение на множители, вычисление функции Эйлера для больших чисел и т.п.) и для быстрого поиска в несортированном списке.

euro пишет:

— Как примерно видели мир Платон, Пифагор, Гераклит и Аристотель? Сформулируйте отличие их метафизики в нескольких предложениях.

Про Гераклита ничего не знаю. Слышал это имя, но значния не придавал.
Как видел мир Платон, представляю смутно. По-моему, в виде иерархии, которую он идеализировал в мифе про Атлантиду.
Пифагор видел мир как набор чисел. Так и сказал: "Всё есть число".
Аристотель: "Каждая вещь стремится занять подобающее ей место и остановиться". Там есть ещё высказывания, опровергнутые Галилеем, но мне лень их приводить.

euro пишет:

— Что такое ультрафильтр?

Впервые вижу это слово. И даже в гугл лень лезть за значением. А самому догадываться тоже лень, потомучто легко ошибиться - гипотез-то имеется несколько.

euro пишет:

— У вас 48 часов, и злобный заказчик поставил вам задачу сделать вызывающий доверие и работающий клон фейсбука, google search или написать новый браузерный движок (на выбор). Как бы вы решили такую задачу?

Я бы её не решил.

euro пишет:

— Какие новые технологии батарей сейчас проходят обкатку и вот-вот появятся на рынке?

Понятия не имею.

Spoiler

тут мне захотелось добавить эффектную фразу, но я подумал и не стал её добавлять.

Когда-то интересовался этим вопросом, а сейчас перестал.

euro пишет:

— Опишите крупномасштабную структуру Вселенной.

Блинчики!


.


эх не возьмут тебя Капризка в стартап ))

358

Чувак, составивший эти вопросы сам аналогичный тест не пройдет, если этот тест напишет капризка.

359

euro пишет:

эх не возьмут тебя Капризка в стартап ))

Хочешь сказать, что Вселенная не состряпана из блинчиков?!
Да ладно, я и так знал, что меня никуда не возьмут. Потому и не хожу на собеседования.

Des пишет:

Чувак, составивший эти вопросы сам аналогичный тест не пройдет, если этот тест напишет капризка.

Согласен. Но это если очно. А если дистанционно, то чувак просто залезет в интернет и почерпнёт оттуда почти любые ответы.

360

Des пишет:

Чувак, составивший эти вопросы сам аналогичный тест не пройдет, если этот тест напишет капризка.

можем проверить ))