#реклама #підтримуємозсу
Приєднуйся до NIX Coding Challenge!
Здається, ми стали забувати, за що полюбляємо програмування… Запрошуємо тебе відчути кайф від невпинного кодинґу 😉
Покажи, на що ти здатний, на NIX Coding Challenge!
Коли: 15 жовтня, з 11:00 до 18:15
Де: онлайн
На тебе чекає алгоритмічних 5 задач. Кожна наступна буде складнішою за попередню. Але ми віримо у твої сили, так само, як і в Перемогу України!
Ти прокачаєш навички логічного мислення і зможеш отримати приз — сертифікат на купівлю ґаджетів! Свій результат дізнаєшся того ж дня у Telegram.
Для участі необхідно:
🔹 мати практичний досвід в IT від 1,5 року;
🔹 уміти програмувати будь-якою мовою;
🔹 знати, як розв'язувати алгоритмічні задачі.
До початку змагання встанови на ноутбук чи комп'ютер інтерпретатор або компілятор тієї мови, якою будеш кодити.
Приймай Ніксовий челендж уже зараз — реєструйся за посиланням!
Приєднуйся до NIX Coding Challenge!
Здається, ми стали забувати, за що полюбляємо програмування… Запрошуємо тебе відчути кайф від невпинного кодинґу 😉
Покажи, на що ти здатний, на NIX Coding Challenge!
Коли: 15 жовтня, з 11:00 до 18:15
Де: онлайн
На тебе чекає алгоритмічних 5 задач. Кожна наступна буде складнішою за попередню. Але ми віримо у твої сили, так само, як і в Перемогу України!
Ти прокачаєш навички логічного мислення і зможеш отримати приз — сертифікат на купівлю ґаджетів! Свій результат дізнаєшся того ж дня у Telegram.
Для участі необхідно:
🔹 мати практичний досвід в IT від 1,5 року;
🔹 уміти програмувати будь-якою мовою;
🔹 знати, як розв'язувати алгоритмічні задачі.
До початку змагання встанови на ноутбук чи комп'ютер інтерпретатор або компілятор тієї мови, якою будеш кодити.
Приймай Ніксовий челендж уже зараз — реєструйся за посиланням!
👍5💩1
Есть офигенный термин, «Эмерджентность». Это такое свойство из теории систем, которое показывает, что у некой сущности есть свойства, которых нет у её отдельно взятых компонентов.
Например, если взять отдельные атомы, то каждый из них не будет обладать свойствами, которыми будет обладать молекула, созданная из этих атомов. Или, более глобальное, вроде кирпичи и доски не обладают способностью прятать людей от дождя и холода, а вместе, в виде дома, вполне себе могут. Ну вы идею поняли, в общем.
Там, в этой теории систем, скорее рассказывается о физическом и биологическом уровне абстракции. Ещё там много внимания уделяется переходу от неживого к живому, мол эмерджентность, как свойство хорошо объясняет появление жизни из неживых материалов, но это тема отдельного поста (ставьте ⚡️, если хотите об этом пост).
А вот, что круто, что эмерджентность в коде — это невероятно крутой способ сказать насколько ваш код хорош. Если имплементировав фичу А и фичу Б, пользователь получит нечто большее, чем две фичи, то с уверенностью можно сказать, что ваш код хорош.
Например, если взять отдельные атомы, то каждый из них не будет обладать свойствами, которыми будет обладать молекула, созданная из этих атомов. Или, более глобальное, вроде кирпичи и доски не обладают способностью прятать людей от дождя и холода, а вместе, в виде дома, вполне себе могут. Ну вы идею поняли, в общем.
Там, в этой теории систем, скорее рассказывается о физическом и биологическом уровне абстракции. Ещё там много внимания уделяется переходу от неживого к живому, мол эмерджентность, как свойство хорошо объясняет появление жизни из неживых материалов, но это тема отдельного поста (ставьте ⚡️, если хотите об этом пост).
А вот, что круто, что эмерджентность в коде — это невероятно крутой способ сказать насколько ваш код хорош. Если имплементировав фичу А и фичу Б, пользователь получит нечто большее, чем две фичи, то с уверенностью можно сказать, что ваш код хорош.
🐳48⚡34👍2
Современный человек использует свой смартфон лишь на 10% от его потенциала.
😁32💯9⚡2🌭2🍌2👍1
Разыскивается веб-технолог для внешне простой, но со своими нюансами лендингом. Минимум
За подробностями в личку (@aratak). Спасибо.
js
, максимум a11y
, включая поддержку rtl
. Я бы оценил, что там на пару дней плотной работы, но это не точно. Будет шикарно, если прям в проекте с рельсами работа будет сделана.За подробностями в личку (@aratak). Спасибо.
👍2💩2
Самая проклятая профдеформация у разработчиков — умение делать выводы по неполным данным.
С одной стороны это необходимо и, вроде бы, это позволяет строить полноценные системы из обрывочных и несистемных примерах и это чуть ли не основа профессии. А с другой — эта же деформация сознания заставляет делать выводы там, где буквально нифига не знаешь и надо бы сначала долго разбираться. Но нет — дедуктивным способом Шерлокам уже все и так ясно.
Особенно это заметно, когда дело доходит до чужого кода или проекта. Использовали библиотеку А, а не Б? Они определённо совершили глупость. Написали свой oAuth-сервер? Дураки, есть же готовые. Используют рельсы для лендинга? Высшей степени некомпетентность не иначе.
Нужно ли винить в этом разработчиков? Однозначно нет, ведь без такой профдеформации не будет и разработчика. Задавать больше вопросов и не делать выводов, если этого не требуется.
С одной стороны это необходимо и, вроде бы, это позволяет строить полноценные системы из обрывочных и несистемных примерах и это чуть ли не основа профессии. А с другой — эта же деформация сознания заставляет делать выводы там, где буквально нифига не знаешь и надо бы сначала долго разбираться. Но нет — дедуктивным способом Шерлокам уже все и так ясно.
Особенно это заметно, когда дело доходит до чужого кода или проекта. Использовали библиотеку А, а не Б? Они определённо совершили глупость. Написали свой oAuth-сервер? Дураки, есть же готовые. Используют рельсы для лендинга? Высшей степени некомпетентность не иначе.
Нужно ли винить в этом разработчиков? Однозначно нет, ведь без такой профдеформации не будет и разработчика. Задавать больше вопросов и не делать выводов, если этого не требуется.
👍17
Маленькие пулл реквесты и рабочий мастер.
Ни у кого не вызывает сомнения, что пулл реквесты должны быть чем меньше, тем лучше. Типа, удобнее делать ревью, искать ошибки и следить за прогрессом. Это да.
С другой стороны, есть вполне здравое правило постоянной работоспособности мастер-ветки. Типа, деплой в любой момент, тесты проходят и баги ищутся проще, новые ветки все начинают с рабочего состояния и всякое такое.
И проблема в том, что эти два правила вступают в логическое противоречие, когда маленький пулл реквест не сделает фичу целиком, а большой тяжело отсматривать. Как результат, в головах разработчиков побеждает правило работоспособного мастера и пулл реквесты на пару тыщ строк считается вынужденным злом.
А фишка в том, что в мастере не должно быть законченное целое количество фич, а мастер просто должен быть рабочим.
Нормальным будет сделать пулл реквест, в котором появляется абстрактный класс, а реализация — отдельными пулл реквестами. Если новые css стили вместе с описаниием и примерами появятся в одном пулл реквесте, а поголовноое приименение этих стилей — в другом.
В общем, правила такие:
1. Пулл реквест должен быть как можно меньше. Если пулл реквест можно разбить на два отдельных — бейте.
2. В мастере должны проходить все тесты. Ну, или мастер должен технически запускаться и не падать, если вдруг у вас нет тестов.
3. Вполне допустимо в пулл реквесте сделать код, который не используется по назначению прям в этом пулл реквесте, а будет использоваться в следующих. И убедить коллег в работоспособности этого кода проще всего с помощью тестов. Или пистолета.
4. Технические изменения пулл реквеста должны описываться одним предложением. Не «сделал фичу», а «поменял сигнатуру метода» или «обновил библиотеку и зависимости». Человеческие описания оставьте задачам, а в пулл реквестах говорите о коде.
#перечитываяэкстраполяцию
Ни у кого не вызывает сомнения, что пулл реквесты должны быть чем меньше, тем лучше. Типа, удобнее делать ревью, искать ошибки и следить за прогрессом. Это да.
С другой стороны, есть вполне здравое правило постоянной работоспособности мастер-ветки. Типа, деплой в любой момент, тесты проходят и баги ищутся проще, новые ветки все начинают с рабочего состояния и всякое такое.
И проблема в том, что эти два правила вступают в логическое противоречие, когда маленький пулл реквест не сделает фичу целиком, а большой тяжело отсматривать. Как результат, в головах разработчиков побеждает правило работоспособного мастера и пулл реквесты на пару тыщ строк считается вынужденным злом.
А фишка в том, что в мастере не должно быть законченное целое количество фич, а мастер просто должен быть рабочим.
Нормальным будет сделать пулл реквест, в котором появляется абстрактный класс, а реализация — отдельными пулл реквестами. Если новые css стили вместе с описаниием и примерами появятся в одном пулл реквесте, а поголовноое приименение этих стилей — в другом.
В общем, правила такие:
1. Пулл реквест должен быть как можно меньше. Если пулл реквест можно разбить на два отдельных — бейте.
2. В мастере должны проходить все тесты. Ну, или мастер должен технически запускаться и не падать, если вдруг у вас нет тестов.
3. Вполне допустимо в пулл реквесте сделать код, который не используется по назначению прям в этом пулл реквесте, а будет использоваться в следующих. И убедить коллег в работоспособности этого кода проще всего с помощью тестов. Или пистолета.
4. Технические изменения пулл реквеста должны описываться одним предложением. Не «сделал фичу», а «поменял сигнатуру метода» или «обновил библиотеку и зависимости». Человеческие описания оставьте задачам, а в пулл реквестах говорите о коде.
#перечитываяэкстраполяцию
👍26👎3
В режиме жесткой экономии электричества в стране вспомнился экономический принцип под названием «Равновесие Нэша» и тут эта нехватка электричества — наглядный пример этого принципа.
Правила такие. Электричества хватит на всех и свет выключать не будут, если все участники договора будут экономить. И наоборот, начнутся веерные отключения света, если будет перегрузка электростанций. Казалось бы, самой выгодной стратегией будет экономить электричество по-полной и отказаться от необязательных электроприборов. Но вот если все вокруг будут жёстко экономить, то, казалось бы, включить микроволновку на минуточку или электрочайник вскипятить — не будет большой бедой, верно? Среди всех вокруг, кто экономит, весьма неплохо оказаться в привелигированном положении и не экономить.
Проблема в том, что ровно такой стратеги могут (и будут) придерживаться вообще все вокруг, тем самым перегрузить сеть так, чтобы вообще остаться без электричества. Конечно, экономить, когда сосед охамел вкрай и включил вообще всё, что мог, возмутительно неправильно. Хочется тоже пользоваться благами цивилизации, как этот гад по соседству. Это решение и приведёт к фиаско.
Вместо этого решением будет не повторять за этим «соседом», а найти способы заставить его соблюдать общие правила. В масштабах больших экономик это решается всякими комиссиями и контроллирующими органами, но принципиально это вопрос не решает.
Художественное красивое описание этого принципа есть в байопике «A Beautiful Mind» 2001 года. Только там про четырёх брюнеток и блондинку было.
Правила такие. Электричества хватит на всех и свет выключать не будут, если все участники договора будут экономить. И наоборот, начнутся веерные отключения света, если будет перегрузка электростанций. Казалось бы, самой выгодной стратегией будет экономить электричество по-полной и отказаться от необязательных электроприборов. Но вот если все вокруг будут жёстко экономить, то, казалось бы, включить микроволновку на минуточку или электрочайник вскипятить — не будет большой бедой, верно? Среди всех вокруг, кто экономит, весьма неплохо оказаться в привелигированном положении и не экономить.
Проблема в том, что ровно такой стратеги могут (и будут) придерживаться вообще все вокруг, тем самым перегрузить сеть так, чтобы вообще остаться без электричества. Конечно, экономить, когда сосед охамел вкрай и включил вообще всё, что мог, возмутительно неправильно. Хочется тоже пользоваться благами цивилизации, как этот гад по соседству. Это решение и приведёт к фиаско.
Вместо этого решением будет не повторять за этим «соседом», а найти способы заставить его соблюдать общие правила. В масштабах больших экономик это решается всякими комиссиями и контроллирующими органами, но принципиально это вопрос не решает.
Художественное красивое описание этого принципа есть в байопике «A Beautiful Mind» 2001 года. Только там про четырёх брюнеток и блондинку было.
👍19❤🔥3
Какие языки вы понимаете? (Несколько вариантов можно)
Anonymous Poll
71%
Українська
89%
Русский
88%
English
22%
Другое
👍6🥴6🔥1
#реклама
На звязку команда G5 Games. Запршуємо вас на безкоштовний благодійний стрім для IT-фахівців всіх рівнів.
Наша мета — зібрати 250 000 грн, щоб допомогти одному з сіл Куп'янського району підготуватися до зими.
Вас очікує:
✅ 12-годинна трансляція в режимі нон-стоп.
✅ Доповіді від спікерів G5 Games-художників, розробників, локалізаторів, продюсерів і рекрутерів.
✅ Відповіді на запитання слухачів.
✅ Благодійна гра “Що? Де? Коли?”.
✅ Розіграш призів.
✅ Бонус: спеціальні гості, про яких ми розповімо пізніше.
Від нас — гідний контент, від вас — донати для допомоги району.
✏️Коли?
26 листопада з 9:00 до 21:00.
✏️Як взяти участь?
Підписуйтесь на наш телеграм-канал, щоб не пропустити важливі новини, там буде посилання на стрім:
https://www.tgoop.com/+v0mts3U_k6pjZTQy
Разом допоможемо Куп'янському району підготуватися до зими!
На звязку команда G5 Games. Запршуємо вас на безкоштовний благодійний стрім для IT-фахівців всіх рівнів.
Наша мета — зібрати 250 000 грн, щоб допомогти одному з сіл Куп'янського району підготуватися до зими.
Вас очікує:
✅ 12-годинна трансляція в режимі нон-стоп.
✅ Доповіді від спікерів G5 Games-художників, розробників, локалізаторів, продюсерів і рекрутерів.
✅ Відповіді на запитання слухачів.
✅ Благодійна гра “Що? Де? Коли?”.
✅ Розіграш призів.
✅ Бонус: спеціальні гості, про яких ми розповімо пізніше.
Від нас — гідний контент, від вас — донати для допомоги району.
✏️Коли?
26 листопада з 9:00 до 21:00.
✏️Як взяти участь?
Підписуйтесь на наш телеграм-канал, щоб не пропустити важливі новини, там буде посилання на стрім:
https://www.tgoop.com/+v0mts3U_k6pjZTQy
Разом допоможемо Куп'янському району підготуватися до зими!
👍5💩4
Привет. Зайдите, пожалуйста, нажмите upvote. Ну, и пользуйтесь, кому надо, это бесплатно. Спасибо.
https://www.producthunt.com/posts/tasks-for-slack
https://www.producthunt.com/posts/tasks-for-slack
Product Hunt
Tasks for Slack: Manage Team Tasks without leaving Slack | Product Hunt
Each message or thread can be a task. No needs additional services to set a task. No need to copy text into the Jira as questions and clarifying messages will be directly in Slack.
👍13⚡1🥴1
Недавно на канале «Клятий Раціоналіст» я услышал, что оказывается пирамиды Маслоу не существует. Ну, там не всё так однозначно, конечно, но смысл в том, что это весьма условное понятие, с кучей контрпримеров и опровержений. И вообще это не пирамида, а ступеньки.
Но вот фишка, что на себе я весьма ощутимо прочувствовал всю мощь этой несостоятельной теории. Будучи под оккупацией в начале года вот совершенно не думалось о этих ваших стартапах, статических языках программирования и управлении проектами. Весь день уходил на то, чтобы найти что пожрать и попить и не умереть от шальной пули. После эвакуации стало немного проще и речь зашла об социальных связях и взаимоотношениях. Уже после налаживания связей, можно было что-то говорить о более высоких материях. Сейчас, когда свет или вода может отсутствовать часов по двадцать, тоже жизненные потребности и требования к окружению сильно снизились и радоваться можно уже даже просто горячему душу или работающему интернету. И практические навыки мой мозг ценит сейчас совсем другие. Вроде умения паять паяльником, разбираться в DC-DC инвенторах, быстро в уме переводить ватт-часы в ампер-часы и наоборот.
Короче, это я так высокопарно оправдываюсь почему тут затишье в «Экстраполяции». Потому что я скатился на пару ступеней пирамиды Маслоу вниз и вещаю сейчас отсюда.
Но вот фишка, что на себе я весьма ощутимо прочувствовал всю мощь этой несостоятельной теории. Будучи под оккупацией в начале года вот совершенно не думалось о этих ваших стартапах, статических языках программирования и управлении проектами. Весь день уходил на то, чтобы найти что пожрать и попить и не умереть от шальной пули. После эвакуации стало немного проще и речь зашла об социальных связях и взаимоотношениях. Уже после налаживания связей, можно было что-то говорить о более высоких материях. Сейчас, когда свет или вода может отсутствовать часов по двадцать, тоже жизненные потребности и требования к окружению сильно снизились и радоваться можно уже даже просто горячему душу или работающему интернету. И практические навыки мой мозг ценит сейчас совсем другие. Вроде умения паять паяльником, разбираться в DC-DC инвенторах, быстро в уме переводить ватт-часы в ампер-часы и наоборот.
Короче, это я так высокопарно оправдываюсь почему тут затишье в «Экстраполяции». Потому что я скатился на пару ступеней пирамиды Маслоу вниз и вещаю сейчас отсюда.
👍41❤17🕊11🤔1💩1💯1
Я думаю, совершенно никто не будет спорить с тем утверждением, что порно с несовершеннолетними — это то, чего существовать не должно в принципе и безопеляционно. Ни при каких условиях. В первую очередь это не должно существовать не потому, что это кто-то увидит, а потому, что это нужно как-то и с кем-то снимать.
В то же время, современные нейросети уже научились генерировать видеоконтент паршивого качества и картинки довольно приличного. Значит скоро и видео приличного качества тоже будет. А в видео этом то, чего никогда не было и не существовало. Так сказать, додумать, усреднить и подменить.
Если можно сгенерировать самурая Рона Уизли, то можно вообще всё, что угодно. Очень интересно, какой у этого будет юридический и правовой подход в ближайшем будущем.
В то же время, современные нейросети уже научились генерировать видеоконтент паршивого качества и картинки довольно приличного. Значит скоро и видео приличного качества тоже будет. А в видео этом то, чего никогда не было и не существовало. Так сказать, додумать, усреднить и подменить.
Если можно сгенерировать самурая Рона Уизли, то можно вообще всё, что угодно. Очень интересно, какой у этого будет юридический и правовой подход в ближайшем будущем.
👍9👎1
Чем клево число Пи? Во-первых и основных это иррациональность и трансцендентность этого числа. Технически это означает, что π нельзя представить никаким другим числом. В том смысле, что его нельзя предствить в виде корня какого-то другого многочлена с целыми коэффициентами и нельзя представить в виде дроби простых чисел (m/n). Число π бесконечно и непериодично в десятичном представлении. А это значит, что теоретически в числе π найдется любая другая подпоследовательность. Нужно только хорошо ее поискать.
А совсем недавно, по меркам открытий, нашли формулу, которая позволяет вычислять любой знак числа пи без вычисления предыдущих, и эта формула относительно проста. И тут понеслось.
Раз мы знаем, что в числе π спрятана любая последовательность чисел и по указанному смещению и длине мы с легкостью можем вычислить эту подпоследовательность, то можно «спрятать» в числе π любой файл, программу или секретный код, главное, чтобы он выражался через числовую последовательность. В итоге в числе π уже есть «Война и мир», исходный код всех операционных систем, все фотографии, которые все человечество когда-либо сделало или сделает. Нужно просто хорошенечко поискать.
Конечно же, искать подпоследовательность хотя бы в 50 мегабайт очень долго и тяжело, но вот после того, как найти такую подпоследовательность, этот файл можно выписать себе на листик в виде смещения в π и длинне подпоследовательности. Сжатие в 100%! Никаким «зипам» и «рарам» это и не снилось!
К сожалению не все так радужно, как хотелось бы. И дело не в том, что такую подпоследовательность очень долго искать -- закон Мура говорит нам, что искать таки можно и в будущем будет это легко. Дело в том, что такое смещение вполне вероятно будет занимать больше места, чем сам файл.
Ну ничего, давайте файл разобъем на более мелкие кусочки, скажем в 640 килобайт, а их уже будем прятать в π. Тогда на смещение в 640КиБ нам нужно будет потратить, скажем, 2Киб, и тогда сжатие будет не 100%, а ~99%. Звучит более реалистично и вполне реализуемо. Более того, уже даже файловая система такая есть, основанная на этом незамысловатом принципе. Работает, конечно, медленно, но работает.
https://github.com/philipl/pifs
#перечитываяэкстраполяцию
А совсем недавно, по меркам открытий, нашли формулу, которая позволяет вычислять любой знак числа пи без вычисления предыдущих, и эта формула относительно проста. И тут понеслось.
Раз мы знаем, что в числе π спрятана любая последовательность чисел и по указанному смещению и длине мы с легкостью можем вычислить эту подпоследовательность, то можно «спрятать» в числе π любой файл, программу или секретный код, главное, чтобы он выражался через числовую последовательность. В итоге в числе π уже есть «Война и мир», исходный код всех операционных систем, все фотографии, которые все человечество когда-либо сделало или сделает. Нужно просто хорошенечко поискать.
Конечно же, искать подпоследовательность хотя бы в 50 мегабайт очень долго и тяжело, но вот после того, как найти такую подпоследовательность, этот файл можно выписать себе на листик в виде смещения в π и длинне подпоследовательности. Сжатие в 100%! Никаким «зипам» и «рарам» это и не снилось!
К сожалению не все так радужно, как хотелось бы. И дело не в том, что такую подпоследовательность очень долго искать -- закон Мура говорит нам, что искать таки можно и в будущем будет это легко. Дело в том, что такое смещение вполне вероятно будет занимать больше места, чем сам файл.
Ну ничего, давайте файл разобъем на более мелкие кусочки, скажем в 640 килобайт, а их уже будем прятать в π. Тогда на смещение в 640КиБ нам нужно будет потратить, скажем, 2Киб, и тогда сжатие будет не 100%, а ~99%. Звучит более реалистично и вполне реализуемо. Более того, уже даже файловая система такая есть, основанная на этом незамысловатом принципе. Работает, конечно, медленно, но работает.
https://github.com/philipl/pifs
#перечитываяэкстраполяцию
🔥13🤔5👍2
На хамбл-бамбл продают пак книг по функциональному программированию. За $18 можно урвать неплохую коллекцию книг. Хорошее времяпрепровождение, когда света нет, а читалка заряжена.
https://www.humblebundle.com/books/functional-programming-pragmatic-programmers-books
https://www.humblebundle.com/books/functional-programming-pragmatic-programmers-books
Humble Bundle
Functional Programming by Pragmatic Programmers
We’ve teamed up with the Pragmatic Programmers for our newest bundle. Get books on programming languages like Elixir, Kotlin, Elm, Scala, and Clojure. Plus, pay what you want & support charity!
👍8
В школе и университете грамоты мне казались чем-то несущественным и вообще не стоящим никакого внимания. Но тогда они и правда были несущественными. Сейчас наоборот — это повод для гордости.
Спасибо всем, кто вместе со мной делает эти добрые дела. Я далеко не всё пишу в канал из того, что мы делаем, но если кто-то хочет присоединиться к нам в этом нелегком деле — ссылка всегда есть в описании к каналу. Спасибо.
Спасибо всем, кто вместе со мной делает эти добрые дела. Я далеко не всё пишу в канал из того, что мы делаем, но если кто-то хочет присоединиться к нам в этом нелегком деле — ссылка всегда есть в описании к каналу. Спасибо.
❤42🥰5👍3🔥3👎2👏1
Критерий хорошего кода.
Основным показателем хорошо структурированного и написанного кода является его способность заменять библиотки. Совсем вырожденный сферическо-единорожный случай, которого не существует в природе — это когда был PostgreSQL, а заменили на MySQL с минимальным изменением кода. Понятное дело, такого не бывает, конечно, но критерий хорошо написанного кода демострирует хорошо. Более частый и менее совоглобусовый случай — обновление мажорных версий библиотек и языков программирования.
Чем проще и чем с меньшими неожиданностями сталкивается разработчик при обновлении библиотек, тем лучше и качественней кодовая база. Конечно, это вовсе не означает, что если вы просто написали
Не то, чтобы прям «критерий», но больше некая лакмусовая бумажка, получается.
Основным показателем хорошо структурированного и написанного кода является его способность заменять библиотки. Совсем вырожденный сферическо-единорожный случай, которого не существует в природе — это когда был PostgreSQL, а заменили на MySQL с минимальным изменением кода. Понятное дело, такого не бывает, конечно, но критерий хорошо написанного кода демострирует хорошо. Более частый и менее совоглобусовый случай — обновление мажорных версий библиотек и языков программирования.
Чем проще и чем с меньшими неожиданностями сталкивается разработчик при обновлении библиотек, тем лучше и качественней кодовая база. Конечно, это вовсе не означает, что если вы просто написали
npm update
и у вас всё завелось с полпинка, то у вас идеальный код, вовсе нет. Скорее это повышает уверенность или вероятность того, что код хороший.Не то, чтобы прям «критерий», но больше некая лакмусовая бумажка, получается.
👍15👎2
Каждый разработчик без проблем и промедлений может сказать хороший или плохой вот этот вот кусок кода. Вот прям посмотрит и сразу скажет. А уж потом, после тщательного анализа и ковырянии сможет хоть как-то внятно сформулировать почему же код на самом деле говно.
Это всё потому, что такие критерии вторичны. Код сначала говно, а уже потом говно по какой-то конкретной причине.
Это всё потому, что такие критерии вторичны. Код сначала говно, а уже потом говно по какой-то конкретной причине.
😁25
Часть проблем, которые приписывают айтишникам, свойственны всем людям любых профессий. Одно из самых очевидных и легко идентифицируемых проблем — это желание переделать все с нуля. И с программированием тут дела обстоят точно так же, как и, скажем, с сантехникой.
Если в нашей отрасли эксперта, который предлагает переписать все на другом языке или фреймворке пытаются как-то образумить, слушают его и допускают его гипотетическую правоту, то сантехника со взглядами «Петрович, тут всю систему менять нужно» и «предыдущий сантехник был идиот, сейчас все переделаем с нуля» считают неквалифицированным и работу поручать не хотят.
Конечно же, чем опытней специалист, тем завуалированней это самое его «давайте все переделаем с нуля». С опытом приходят изыски вроде «концепция изначально была выбрана неверно», «устранить ошибку лучше сразу фундаментально» и «используемые инструменты устарели и новый фреймворк лишён недостатоков из коробки». Но это все то же старое доброе «тут уже ничего не справить, жги».
Конечно же, есть ситуации когда действительно нужно все переписать и действительно исправлять выйдет дороже, но это стоит считать крайней мерой, когда все остальное уже перепробовано и отвергнуто. Такое предложение хорошо бы слышать от человека, который знаком с системой, знает все исторические вехи и понимает почему было принято то или иное решение в прошлом.
Предложение переписать все нахрен ни в каких случаях недопустимо от человека только что присоединившегося к проекту.
#перечитываяэкстраполяцию
Если в нашей отрасли эксперта, который предлагает переписать все на другом языке или фреймворке пытаются как-то образумить, слушают его и допускают его гипотетическую правоту, то сантехника со взглядами «Петрович, тут всю систему менять нужно» и «предыдущий сантехник был идиот, сейчас все переделаем с нуля» считают неквалифицированным и работу поручать не хотят.
Конечно же, чем опытней специалист, тем завуалированней это самое его «давайте все переделаем с нуля». С опытом приходят изыски вроде «концепция изначально была выбрана неверно», «устранить ошибку лучше сразу фундаментально» и «используемые инструменты устарели и новый фреймворк лишён недостатоков из коробки». Но это все то же старое доброе «тут уже ничего не справить, жги».
Конечно же, есть ситуации когда действительно нужно все переписать и действительно исправлять выйдет дороже, но это стоит считать крайней мерой, когда все остальное уже перепробовано и отвергнуто. Такое предложение хорошо бы слышать от человека, который знаком с системой, знает все исторические вехи и понимает почему было принято то или иное решение в прошлом.
Предложение переписать все нахрен ни в каких случаях недопустимо от человека только что присоединившегося к проекту.
#перечитываяэкстраполяцию
👍16🔥3🤔2
Эй, новички в программировании, вот вам лайфхак как правильнее всего научиться программировать или познакомится с новым языком и фреймворком.
Забейте на код и научитесь писать тесты.
Увидели новый фреймворк? «Как тут у вас тесты пишутся?» — должен быть первый и самый главный вопрос к документации. Новый язык или библиотека начинать изучаться могут только из секции «tests», а уж потом можно переходить к секции «how to install».
Вы всё-равно будете по тысячу раз в минуту проверять работоспособность написанного кода. Вы будете экспериментировать с новыми конструкциями, концепциями и структурами. Делайте это сразу автотестами.
Забейте на код и научитесь писать тесты.
Увидели новый фреймворк? «Как тут у вас тесты пишутся?» — должен быть первый и самый главный вопрос к документации. Новый язык или библиотека начинать изучаться могут только из секции «tests», а уж потом можно переходить к секции «how to install».
Вы всё-равно будете по тысячу раз в минуту проверять работоспособность написанного кода. Вы будете экспериментировать с новыми конструкциями, концепциями и структурами. Делайте это сразу автотестами.
👍20👎2🤔2