Четыре совета по написанию «чистого кода»

Оглавление (нажмите, чтобы открыть):

14 советов по написанию чистого React-кода. Часть 2

Сегодня мы публикуем вторую часть материала о написании чистого кода при разработке React-приложений. Вот ещё несколько полезных советов.

8. Преобразуйте дублирующиеся элементы в компоненты

Преобразование дублирующихся элементов в компоненты, подходящие для многократного использования, можно назвать «компонентизацией» таких элементов.

У каждого разработчика имеются собственные причины, по которым он пишет дублирующийся React-код. Это может быть намеренным действием, а может быть и случайностью.

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

К примеру, если некто не завёл у себя привычку избавляться от дубликатов — то они, с высокой долей вероятности, будут возникать в его проектах снова и снова. Что за командный игрок тот, кто так поступает? Он попросту усложняет будущую жизнь своих коллег, которые будут путаться, встречая дублирующийся код. Особенный же «подарок» им достанется в том случае, если им придётся подобные фрагменты кода редактировать.

Взглянем на следующий пример и подумаем о том, как его улучшить:

Если сейчас понадобится поменять параметры сетки с xs= <12>sm= <6>на xs= <12>sm= <4>, то выполнение этой задачи особо приятным не окажется. Дело в том, что для этого придётся редактировать код в четырёх местах.

Красота компонентного подхода в том, что он позволяет решать задачи, подобные вышеописанной, изменив код всего в одном месте. В нашем случае это изменение отразится везде, где используются сетки:

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

9. Стремитесь к тому, чтобы ваши компоненты были бы как можно проще

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

Вот пример компонента, который неоправданно усложнён. Он представлен файлом ConfirmAvailability.js :

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

Раньше весь код хранился в единственном файле. Теперь мы разбили его на два файла. Вот содержимое первого файла — SelectTimeZone.js :

Вот как выглядит второй файл — TimeZonePicker.js :

После переработки код проекта оказался гораздо чище, чем прежде. Мы извлекли логику из презентационной части компонента. Теперь, кроме того, значительно упростится модульное тестирование проекта.

10. Используйте useReducer при усложнении useState

Чем больше фрагментов состояния приходится обрабатывать в проекте — тем сильнее усложняется использование useState .

Это, например, может выглядеть так:

Работать с этим всем станет гораздо удобнее в том случае, если перевести данный код на использование useReducer :

Хотя такой подход, вероятно, не будет чище, чем использование useState , что видно при взгляде на код, новый код легче поддерживать. Это происходит из-за того, что при применении useReducer программисту не приходится беспокоиться об обновлениях состояния в разных частях хука, так как все эти операции определены в одном месте внутри reducer .

В версии кода, в которой используется useState , нам, в дополнение к написанию логики, нужно объявлять функции внутри хука для того, чтобы выяснить то, какой должна быть следующая часть состояния. А при использовании useReducer этого делать не приходится. Вместо этого всё попадает в функцию reducer . Нам лишь нужно вызвать действие соответствующего типа, и это, собственно говоря, всё, о чём надо беспокоиться.

11. Используйте объявления функций в неоднозначных ситуациях

Хороший пример использования этой рекомендации представляет собой создание механизма очистки useEffect :

Опытный React-разработчик знает о том, какова роль возвращаемой функции, он легко поймёт подобный код. Но если представить, что данный код будет читать тот, кто не очень хорошо знаком с useEffect , лучше будет выражать свои намерения в коде максимально ясно. Речь идёт об использовании объявлений функций, которым можно давать осмысленные имена. Например, этот код можно переписать так:

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

12. Используйте Prettier

Prettier помогает индивидуальным разработчикам и командам придерживаться единого и неизменного подхода к форматированию кода. Этот инструмент способствует экономии времени и сил. Он упрощает выполнение код-ревью за счёт снижения числа поводов для обсуждения стиля программ. Prettier, кроме того, подталкивает программистов к использованию методик написания чистого кода. Правила, применяемые этим инструментом, поддаются редактированию. В результате оказывается, что каждый может настроить его так, как считает нужным.

13. Стремитесь к использованию сокращённой записи объявлений фрагментов

Суть этой рекомендации можно выразить следующими двумя примерами.

Вот сокращённый вариант объявления фрагмента:

Вот полный вариант:

14. Придерживайтесь определённого порядка размещения элементов при написании кода

Я, когда пишу код, предпочитаю располагать некоторые команды в определённом порядке. Например, я это делаю при импорте файлов (исключением тут является лишь импорт react ):

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

Я, стремясь к чистоте кода моих проектов, использую следующие правила, применяемые в порядке их следования:

  1. Импорт React.
  2. Импорт библиотек (в алфавитном порядке).
  3. Абсолютные команды импорта сущностей из проекта (в алфавитном порядке).
  4. Относительные команды импорта (в алфавитном порядке).
  5. Команды вида import * as .
  6. Команды вида import ‘./.’ .

А вот как я предпочитаю организовывать, например, переменные. Скажем — свойства объектов:

Если следовать неким правилам упорядочения сущностей при написании кода — это благотворно скажется на его чистоте.

Итоги

Мы представили вашему вниманию советы по написанию чистого кода React-приложений. Надеемся, вы нашли среди них что-то такое, что вам пригодится.

Уважаемые читатели! Какими рекомендациями вы дополнили бы советы, представленные в этом материале?

Книга «Чистый код. Создание, анализ и рефакторинг»

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

В руководстве раскрываются правила написания кода, в ней много реальных рабочих образцов. Рассмотрены такие нюансы, как чистка кода. Читая ее, вы поймете основы того, как разработать и написать программный код.

Прочитав издание Роберта Мартина «Чистый код», вы освоите:

  • На чем основывается «правильный код»;
  • Методы улучшения «плохого кода»;
  • Почему в подготовке кода так важны мелочи;
  • Почему правильно написанный код, со временем «портится»?

В 3 блоках книги описаны приемы и методики верстки, рассмотрены практические схемы прогрессирующей сложности и представлен список экспериментальных правил.

Прочтя ее, сформируются профессиональные навыки по написанию рабочего, «чистого кода». Вы существенно ускорите работу своих проектов и станете ведущим экспертом компании.

Чистый код: создание, анализ и рефакторинг

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

Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги — концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.

[Перевод] 14 советов по написанию чистого React-кода. Часть 1

Написание чистого кода — это навык, который становится обязательным на определённом этапе карьеры программиста. Особенно этот навык важен тогда, когда программист пытается найти свою первую работу. Это, по существу, то, что делает разработчика командным игроком, и то, что сп.

Подробности на сайте: habr.com

[Перевод] 14 советов по написанию чистого React-кода. Часть 2 Сегодня мы публикуем вторую часть материала о написании чистого кода при разработке React-приложений. Вот ещё несколько полезных советов. → Читать первую часть Читать дальше →

[Перевод] Пишем чистый и масштабируемый JavaScript-код: 12 советов Язык JavaScript родом из раннего веба. Сначала на нём писали простые скрипты, которые «оживляли» страницы сайтов. Теперь же JS превратился в полноценный язык программирования, который можно использовать даже для разработки серверных проектов. Современные веб-приложения силь.

[Из песочницы] 10 принципов самодокументируемого кода Привет! Сегодня я хочу поделиться советами по написанию совершенного понятного кода, взятые из книги Питера Гудлифа «Ремесло программиста // Практика написания хорошего кода». Конечно, неплохо было бы прочитать эту занимательную книгу каждому кто пишет код, но для особо ле.

Лучшее из опыта создания чистых и быстрых Angular приложений На написание этой статьи сподвигли поиски JavaScript front-end разработчиков в свою компанию в Ставрополе. Т.к. длительное время не удавалось найти толкового программиста и тогда мы решили запустить программу стажировки с большим количеством обучающего материала по Angular &.

[Перевод] Как написать сопроводительное письмо при поиске работы в США: 7 советов На протяжение многих лет в США была распроcтранена практика требовать претендентов на различные вакансии не только резюме, но еще и сопроводительное письмо (cover letter). В последние годы важность этого аспекта начала снижаться – уже в 2020 году сопроводительные письма тр.

[Из песочницы] Игра (не) для дураков. Пишем AI для «Дурака» (часть 1) Думаю, ни для кого не секрет, что «Дурак» (далее это слово будет написано с маленькой буквы и без кавычек) — это самая популярная карточная игра в России и странах бывшего СССР (хотя и почти неизвестная за его пределами). Несмотря на свое название и довольно неслож.

Размышления о красоте и коде Думаю, у каждого разработчика рано или поздно возникают в голове мысли о том, что код нужно писать определенным образом. Почему фреймворк этого автора так прост в использовании, и погружение в него проходит так быстро? Почему данный кусок кода кажется мне ужасным? В этот мом.

Вредные советы: как правильно писать техническую документацию? Часть вторая Советы по грамотному написанию технической документации для пользователей. Часть 2 Продолжение руководства нашего технического писателя Андрея Старовойтова, которое поможет сделать вашу пользовательскую документацию проще и понятнее. Начало статьи можно почитать тут, а то.

Вредные советы: как правильно писать техническую документацию? Часть третья и последняя Советы по грамотному написанию технической документации для пользователей. Часть 3 (заключительная) Заключение руководства нашего технического писателя Андрея Старовойтова, которое поможет сделать вашу пользовательскую документацию проще и понятнее. На этот раз мы попод.

Изучая Dependency Injection Несмотря на то, что паттерну уже более десятка лет и есть немало статей (и переводов), тем не менее споров, комментариев, вопросов и разных реализаций становится все больше и больше. ПредысторияВ 2004 Мартин Фаулер написал известную статью “Inversion of Control Containers .

[Перевод] Четыре больших ошибки, которые совершал каждый программист Фотограф — Blake Connally, источник — Unsplash Создание программного обеспечения — искусство. Написание кода позволяет нам самовыражаться. И каждый разработчик делает это по-своему. Но индивидуализм не бесплатен — в этой статье я напишу о некоторых самых распространённых оши.

[Из песочницы] Пишем «Hello, world!» приложение для web на Haskell (Spock) Мне стало скучно писать на Python, захотелось чего-нибудь необычного. Решил попробовать Haskell. Языка я не знаю, однако просто писать консольные учебные программы, типа вычисления факториала, не хотелось. После изучения довольно большого числа постов про Haskell и его приме.

Вредные советы: как правильно писать техническую документацию? Советы по грамотному написанию технической документации для пользователей. Часть 1 В одной из предыдущих статей мы в общих чертах рассказывали, как именно происходит процесс документирования и локализации наших продуктов. На этот раз под катом – руководство нашего техниче.

[Перевод] Осваиваем async/await на реальном примере Конструкция async/await представляет собой сравнительно новый подход к написанию асинхронного кода в JavaScript. Она основана на промисах и, в результате, не блокирует главный поток. Новшество этой конструкции заключается в том, что благодаря ей асинхронный код становится по.

[Перевод] Рекомендации по написанию чистого кода на JavaScript Если вы заботитесь о самом коде, и о том, как он написан, а не заняты лишь тем, чтобы создавать работающие программы, это означает что вы стремитесь к тому, чтобы ваш код был чистым. Профессиональный разработчик пишет код не только в расчёте на компьютеры, но и в расчёте на .

Искусство парсинга или DOM своими руками Привет, Хабр! Недавно я задался идеей создать простой язык разметки наподобие markdown, который отлично подходил бы для моих задач, а именно — быстрого написания лекций с форматированием и возможностью вставки математических формул «на лету», с применением одной лишь клавиат.

Принцип Брета Виктора: «Творцам нужна мгновенная связь с тем, что они создают» Это одно из лучших выступлений, которое я встречал. Хоть про эту презентацию уже писали на Хабре и переводили 6 лет назад, я решил её красиво оформить и ещё раз обратить на неё внимание. Она того стоит. Брет Виктор: Я просто хочу рассказать вам о том, как прожить свою жиз.

[Перевод] Руководство: типы эссе в английском языке и советы по их написанию Написание эссе – распространенное задание, с которым сталкиваются те, кто изучает английский. Часто эссе используются в качестве домашних заданий, части тестов, и, конечно, в качестве одного из испытаний при поступлении в учебные заведения. Я нашел интересный пост, в кот.

[Перевод] Как улучшить стиль письма на английском: 5 советов При написании текстов на любом языке важно не только избегать грамматических и синтаксических ошибок, но и в целом следить за стилем изложения. Читатели мгновенно видят, когда текст написан хорошо. Я наткнулся на интересный материал с пятью советами, которые призваны помо.

[recovery mode] Популярные вопросы разработчика о тестировании Эта статья — не теоретическое руководство по написанию тестов и не how-to по использованию инструментария в определенном стеке, а ряд популярных вопросов, иногда даже у многих не сформировавшихся, на которые я постараюсь дать ответы. Источником этих вопросов служат коллеги, .

[Перевод] 10 советов и приемов, которые помогут вам стать лучшим разработчиком на VueJS Перед вами вольный перевод статьи 10 Tips & Tricks to make you a better VueJS Developer с сайта Dev.to. Автор расскажет нам об интересных и полезных вариантах применения привычных нам средств VueJS. Введение Мне действительно нравится работать с VueJS и каждый раз, когда.

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

Redux — пересмотр логики reducer’a и actions На днях ковыряясь в множестве файлов redux’a, где по логике файлы вынесены в reducers, actions, константы типов actions. Bсе это оказалось весьма не простая задача держа все эти типы файлов у себя в голове и прослеживать логику. И… эврика, появилась идея упрощения написания.

[Из песочницы] Что делать, если хочется собирать деньги на ремонт «Провала», а под рукой только Wikipedia Мечта любого пиарщика и маркетолога — разместить статью о своей компании на Википедии, ведь это и авторитетность, и высокая поисковая выдача, а значит и больше внимания со стороны потенциальных клиентов. Но написать статью на Википедии – это только половина дела, нужно ещ.

Карьерные стероиды. Базовый алгоритм Статья про быстрый карьерный рост внутри одной компании. Именно внутри одной, т.к. скачок при переходе — это другая методика, к ней нужно иначе готовиться (там больше комплект увольнения подходит). Сразу скажу: я не считаю, что строить карьеру — это правильно, без этого ник.

[Из песочницы] Размышления на тему карьеры в IT и советы начинающим Привет, Хабр! Я тут недавно много думал насчёт карьеры, будущего нашей индустрии и так далее. Решил написать статью для тех кто только собирается сюда въезжать, да и вообще возможно кому-то будет интересно, все нижеприведенное чисто мое имхо и многое из того что я скажу прим.

[Из песочницы] Простой способ добавить несколько языков на сайт Введение В рамках своего проекта я столкнулся с задачей сделать текущий сайт компании мультиязычным. Более точно: создать возможность быстро и просто перевести сайт на английский, польский, итальянский и т.д. Поиск в интернете показал, что существующие варианты создания му.

[Из песочницы] Стартуем библиотеку компонентов на React и TypeScript Большую часть свой работы, я пишу бэкенды, но вот на днях появилась задача начать библиотеку компонентов на React. Несколько лет назад, когда версия React была такой же маленькой, как и мой опыт фронтенд-разработки, я уже делал подход к снаряду и получилось неумело и коряво.

[Из песочницы] Подробный разбор симплекс-метода Пролог Недавно появилась необходимость создать с нуля программу, реализующую алгоритм симплекс-метода. Но в ходе решения я столкнулся с проблемой: в интернете не так уж много ресурсов, на которых можно посмотреть подробный теоретический разбор алгоритма (его обоснование: поч.

[Перевод] Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важенЭтот пост — перевод первой статьи .

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

[Перевод] Советы для кандидатов от программиста, проводящего собеседования в Facebook В прошлом году я провел бессчетные часы на собеседованиях с кандидатами на разные должности в компании Facebook. И, так как теперь мне довелось побывать по обе стороны процесса отбора, я хотел бы помочь вам – студентам, которые пытаются попасть на первую в жизни интернатур.

[Перевод] Делать хорошо, делая плохо: написание «злого» кода с помощью Go, часть 1 Вредные советы для Go-программиста После десятилетий программирования на Java, последние несколько лет я в основном работал на Go. Работать с Go — здорово, прежде всего потому, что за кодом очень легко следовать. Java упростила модель программирования C ++, удалив множеств.

[Перевод] Практичный Go: советы по написанию поддерживаемых программ в реальном мире Статья посвящена лучшим практикам написания кода Go. Она составлен в стиле презентации, но без обычных слайдов. Постараемся кратко и чётко пройтись по каждому пункту. Для начала следует договориться, что значит лучшие практики для языка программирования. Здесь можно вспомни.

[Из песочницы] Создание своего jsfiddle, часть 1 Привет всем читателем habr. В данной статье мы напишем свой онлайн редактор кода. Зачем я писал свой онлайн редактор кода В один день мне стало интересно насколько сложно создать свой онлайн редактор по типу jsfiddle, из-за чего я решил написать свой редактор. Написание сво.

Советы по разработке очень больших проектов в Revit Многие команды имеют собственные стандарты BIM. Но что происходит, когда команда начинает работу над проектом значительно большим, чем когда либо приходилось выполнять в Revit. Применяются ли стандарты, подходящие для небольших проектов для сооружений в сотни тысяч квадратн.

Как сделать так, чтобы вашу англоязычную статью для Хабра прочитали десятки тысяч человек: 3 простых совета Англоязычная версия Хабра существует уже какое-то время. Все больше пользователей пробуют свои силы в переводе своих русскоязычных статей и написании новых. Я очень много пишу на английском по работе, и вижу некоторые повторяющиеся ошибки, которые не позволяют таким статья.

[Из песочницы] Автоматика для дома своими руками Моя статья будет полезна тем, кто только задумывается над подобного рода системой, поможет определиться делать ли самому и ориентирована в основном на энтузиастов-колхозников. Изначально пишу “автоматика” а не умный дом, потому что на данном этапе умных функций в моей систем.

Kubernetes Operator на Python без фреймворков и SDK Go на данный момент является монополистом среди языков программирования, которые люди выбирают для написания операторов для Kubernetes. Тому есть такие объективные причины, как: Существует мощнейший фреймворк для разработки операторов на Go — Operator SDK. На Go написа.

[Перевод] Как в 1995 году писали игры для Sega Saturn Это документ, написанный мной в 1995 году, когда я работал над первой игрой студии Neversoft: Skeleton Warriors. Это была первая игра, в которой я не использовал язык ассемблера 68K. Фото сделано примерно в то время. Комплект разработчика (dev kit) («Small Box» и ICE) стоит.

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

Эволюция CI в команде мобильной разработки Сегодня большинство программных продуктов разрабатываются в командах. Условия успеха командной разработки можно представить в виде простой схемы. Написав код, вы должны убедиться, что он: Работает. Ничего не ломает, в том числе код, который написали ваши коллеги. Если .

Что должен делать тимлид: роли, обязанности и навыки Тимлид – это снежинка. При детальном рассмотрении в каждой компании тимлид принимает разную форму. Где-то от него ждут только передвижения задач по доске, где-то – наймов и увольнений, а где-то просят одновременно проектировать архитектуру, ставить бизнес-цели и думать о бо.

Как IT-компания книжное издательство открывала В последнее время некоторым начинает казаться, будто такой «консервативный» источник информации как книга начинает сдавать позиции и теряет актуальность. А зря: несмотря на то, что мы уже живём в эпоху цифровую и вообще работаем в IT, книжки мы любим и уважаем. Особенно та.

[Перевод] 10 самых влиятельных языков программирования последних 50 лет и их создатели В IT-вселенной существует множество языков программирования. С каждым годом их становится всё больше и больше. Например, сравнительно недавно появились языки Scala, Kotlin, Go и Closure. Но история говорит нам о том, что выживут лишь немногие из них. Языки, о которых пойдёт.

[Перевод] Восемь ошибок, которые я допускал, когда был джуниором В начале карьеры разработчика часто бывает страшновато: перед тобой встают незнакомые проблемы, многому нужно научиться и приходится принимать сложные решения. И в некоторых случаях мы в этих решениях ошибаемся. Это вполне естественно, и грызть себя по этому поводу не стоит.

[Из песочницы] Подводные камни Java Здравствуйте. Хочу представить вашему вниманию небольшую статью. Цель данной публикации: Показать наиболее часто встречающиеся ошибки начинающих и некоторые приемы их исправления. Понятно, что некоторые ошибки могут быть сложными и происходить по тем или иным причинам. Цель.

[Перевод] TDD в геймдеве или «кроличий ад» TDD в геймдеве применяют довольно редко. Обычно проще нанять тестировщика, чем выделить разработчика для написания тестов — так экономятся и ресурсы, и время. Поэтому каждый успешный пример использования TDD становится интереснее. Под катом перевод материала, где эту технику.

[Из песочницы] Пишите меньше кода Хайп по Svelte после недавнего релиза 3 версии фреймворка всё-таки имеет место быть, чему свидетельствуют сильно возросшее комьюнити и огромное количество вопросов как в официальном чате, так и в нашем рускоязычном telegram-канале. Всё больше разработчиков украдкой или всерь.

Введение в программирование: простой 3Д шутер с нуля за выходные, часть 1 Этот текст предназначен для тех, кто только осваивает программирование. Основная идея в том, чтобы показать этап за этапом, как можно самостоятельно сделать игру à la Wolfenstein 3D. Внимание, я совершенно не собираюсь соревноваться с Кармаком, он гений и его код прекрасен. .

MMRU (Multi Material Russian Upgrade) Remix on MMU2 (Часть 4: Первые механические траблы) Мои эпопеи с запуском MMRU (Multi Material Russian/Ramps Unit) продолжаются. Кто не в теме вот (первая, втораяи третья части моих потуг)ДИСКЛАМЕР для «особенных»: да мое решение так себе, да оно не оригинальное, да можно было бы сделать на двух движках, сервах, электромагнит.

Часть 4. Карьера программиста. Junior. Заход во фриланс Продолжение рассказа «Карьера программиста». Смеркалось. И прямо, и косвенно. Я с большим усердием искал работу программистом, но не было никаких вариантов. В моем городе было 2-3 объявления на 1С-разработчика плюс, редкий случай, когда требовались преподаватели курсов прог.

[Перевод] Ускоряем JavaScript-код с использованием типа данных Set Автор материала, перевод которого мы сегодня публикуем, говорит, что уверен в том, что многие JavaScript-разработчики пользуются, в основном, такими типами данных, как Number, String, Object, Array и Boolean. В большинстве случаев этого вполне достаточно. Но если нужно сдела.

Несколько простых, но полезных советов по работе с геттерами в Vuex Vuex предоставляет удобные инструменты для работы с данными, но некоторые разработчики используют их не всегда по назначению, либо создают избыточные конструкции там, где можно было написать более понятно и ёмко, такое также случается, когда разработчик только знакомится с д.

[Перевод] Хороший разработчик мудр, а не гениален Одним из самых важных уроков, которые я постиг в качестве разработчика 15 лет назад, была эта простая мысль: Хороший код выразителен, а не впечатляющ. Я помню, как услышав это спросил «А в чём разница?», и получил ответ. «Выразительный» — понятный, однозначный и конкретный.

React & БЭМ – официальная коллаборация. Часть историческая Перед вами история интегрирования БЭМ-методологии в React-вселенную. Материал, который вы прочитаете, построен на опыте разработчиков Яндекса, развивающих самый масштабный и нагруженный сервис в России — Яндекс.Поиск. Мы никогда раньше не рассказывали настолько подробно и гл.

[Из песочницы] Duality — легкий и быстрый движок для игростроя под Windows (Доп.) Приветствую, читатель. В данной публикации речь пойдет о перспективном и достаточно молодом игровом движке, который незаслуженно остался в тени таких гигантов, как Unity или Unreal Engine. Разработчиками является объединение энтузиастов под руководством Adam’s Lair. Как.

Сколько нужно программистов, чтобы поддерживать ранее написанный код? Некоторое время назад между мной и моим хорошим другом состоялся разговор, в котором прозвучали такие фразы: — Количество программистов будет постоянно расти — ведь количество кода растет, и для его поддержки постоянно требуется все больше разработчиков. — Но код стареет.

Линейная регрессия и методы её восстановления Источник: xkcd Линейная регрессия является одним из базовых алгоритмов для многих областей, связанных с анализом данных. Причина этому очевидна. Это очень простой и понятный алгоритм, что способствует его широкому применению уже многие десятки, если не сотни, лет. Идея зак.

[Из песочницы] Пять ошибок, которые я допустил как ведущий разработчик Ведущий разработчик — не зря «ведущий». Эту фразу я услышал на одной из конференций по IT-менеджменту и задался вопросом, а почему «не зря»? Именно он подтолкнул меня написать эту статью. Оценивая свой опыт я могу сказать, что основные характеристики ведущего разработчика .

[Перевод] Реалистичная каустика отражений Большинство технических художников на каком-то этапе карьеры пытается создать правдоподобные отражения каустики. Если вы разработчик игр, то одна из основных причин чтения Twitter заключается в бесконечном потоке вдохновения, которое из него можно почерпать. Несколько дней .

Перенос сайта на статику: мотивация, стоимость, работа Недавно мы сделали то, о чём грезят все программисты и дизайнеры — переписали всё с нуля: полный редизайн нашего сайта и написание «движка» с чистого листа. Ниже поведаем о мотивации и процессе миграции с онлайн-CMS на статику. Читать дальше →

[Перевод] Всё, что нужно для начала работы с Vue.js Скорее всего, вы, читая эти строки, уже слышали о JavaScript-фреймворке, который называется Vue. Если вы собирались его опробовать, но не очень хорошо представляли себе то, с чего вам стоит начать, значит — этот материал написан специально для вас. Его автор говорит, что хоч.

[Перевод] Математика, сообщающая клеткам, какими они должны быть Клеткам эмбрионов нужно пробраться по «ландшафту развития» к своей судьбе. Новые открытия касаются того, как у них получается делать это настолько эффективно В 1891 году, когда немецкий биолог Ханс Дриш разделил двухклеточный эмбрион морского ежа пополам, он обнаружил, что.

[Перевод] 27 удивительных инструментов VS Code для современных JavaScript-разработчиков Visual Studio Code (его ещё называют VS Code и VSCode) — это экономичный но мощный кросс-платформенный редактор кода, выполненный в виде настольного приложения. По словам автора материала, перевод которого мы сегодня публикуем, VS Code поддерживает множество инструментов раз.

[Из песочницы] Не учите паттерны, учите концепции Добрый день (или вечер, или утро, в зависимости от того, когда выйдет этот пост). Я хочу высказаться о элитарной части программирования, и донести, в общем-то, очевидную мысль до начинающих в back-end(и не только) разработке, попутно используя попытку начать писать на Хабре.

[Перевод] Если вы не пишете программу, не используйте язык программирования Лесли Лэмпорт — автор основополагающих работ в распределённых вычислениях, а ещё вы его можете знать по буквам La в слове LaTeX — «Lamport TeX». Это он впервые, ещё в 1979 году, ввёл понятие последовательной согласованности, а его статья «How to Make a Multiprocessor Comput.

Как сэкономить на психотерапевте используя test-driven development У вас когда-нибудь было такое состояние? Хочу показать вам, как TDD может улучшить качество кода на конкретном примере. Потому что всё то, что я встречал при изучении вопроса, было довольно-таки теоретическим. Так получилось, что мне довелось написать два практически иден.

Ищем работу за границей: 7 простых советов для разработчиков Ищете работу за границей? Будучи в сфере IT-рекрутинга уже более 10 лет, я часто даю разработчикам советы о том, как быстро найти работу за рубежом. В этой статье приведены самые распространенные из них. Читать дальше →

Принимаем участие в недавнем Telegram Contest, пишем крутое OpenGL ES приложение и выигрываем ничего Забегая вперед, хотелось бы обратить внимание на сумбурную ситуацию с победителем первого этапа конкурса. Победитель забрал 50К американских президентов. НО, был как минимум, еще один разработчик, который написал идентичное приложение и не был никак вознагражден. Он даже по.

[Перевод] Обработка ошибок в Go Привет, хабровчане! Уже сегодня в ОТУС стартует курс «Разработчик Golang» и мы считаем это отличным поводом, чтобы поделиться еще одной полезной публикацией по теме. Сегодня поговорим о подходе Go к ошибкам. Начнем! Освоение прагматической обработки ошибок в вашем Go-коде.

noexcept-ctcheck или несколько простых макросов, чтобы компилятор помогал при написании noexcept кода При разработке на C++ время от времени приходится писать код, в котором исключения не должны возникать. Например, когда нам нужно написать не бросающий исключений swap для собственных типов или определить noexcept move-оператор для своего класса, или вручную реализовать нетр.

Советы по The Elder Scrolls: Blades — как успешно играть не вкладывая реальные деньги? The Elder Scrolls: Blades- это free-to-play игра, потому неудивительно, что Bethesda встроила в неё механизмы, которые затрудняют продвижение без вложения реальных денег и покупки внутриигровой премиум-валюты — кристаллов. Поначалу этого вы не заметите, но к 15-20 уровню иг.

[Перевод] Как стать лучшим в мире в какой-то нише Комбинация хорошо развитых навыков сделает вас уникальным, даже если по каждому из них вы далеко не гений Давайте подумаем, что нужно, чтобы стать игроком НБА. Большинство профессиональных баскетболистов оттачивали мастерство практически с младенчества. Годы бесконечных тр.

[Перевод] С кем судиться, когда робот теряет ваши деньги Первый случай, когда люди обратились в суд по поводу потери инвестиций, к которой привела работа автономных машин, станет проверкой пределов надёжности С каждым днём роботы становятся всё больше похожими на людей, но судиться с ними до сих пор нельзя. Поэтому гонконгский .

Не нажимай и не утверждай Я могу ошибаться, но предполагаю, что эти два совета помогут вам не наступать на те грабли, на которые я несколько лет подряд прыгал с разбегу. Особенно, если для большинства окружающих вы «разбираетесь в компьютерах» или, более того, ваша работа напрямую связана с помощью п.

Upwork вводит плату за право написать потенциальному клиенту Только что на почту упало письмо от СЕО Upwork в котором говорится, что теперь необходимо платить от 15 американских центов за каждый отклик на опубликованную вакансию. Письмо и перевод под катом. Читать дальше →

[Перевод] Советы о том, как освободить разум и повысить свой творческий потенциал Потребление информации снижает творческий потенциал — мозгу нужно отдыхать «Чтобы по-настоящему дорожить вещами, которые для вас важны, вы должны cначала избавиться от тех, которые уже пережили свое предназначение. Выбрасывать то, что вам больше не нужно, — это не расточит.

Russian AI Cup 2020, история 9 места Итак Меня, как и в прошлом году, зовут Андрей Рыбалка, только в этот раз мне 33. И, раз уж я оказался в десятке лучших, я решил снова поделиться своим подходом к написанию игрового бота для Russian AI Cup 2020. В этот раз заданием был футбол. Сама задача несколько напоминала.

[Перевод] Шесть навыков, которые выведут вашу карьеру в Data Science на новый уровень Перед вами перевод статьи Genevieve Hayes, Data Scientist с 15-летним опытом работы. Автор рассказывает о том, какие навыки стоит развивать, чтобы значительно увеличить шансы найти работу в Data Science. Чтобы определить эти навыки, она проанализировала 100 вакансий, размеще.

Как чувство голода влияет на принимаемые нами решения? Чувство голода заставляет вас делать ошибки Отправляясь в продуктовый магазин всем людям стоит соблюдать одно крайне важное правило — перед выходом из дома нужно плотно поесть. Вы наверняка много раз в своей жизни слышали, что если человек идет в магазин голодным, то с больш.

В Санкт-Петербурге пройдет хакатон для разработчиков навыков для Алисы «Мысли вслух» Яндекс примет участие в компьютерном фестивале Chaos Constructions, который пройдет в Санкт-Петербурге 24–25 августа. В рамках этого мероприятия компания организует хакатон «Игры вслух» и приглашает к участию разработчиков, интересующихся написанием .

Docker: вредные советы Когда я учился водить машину, на первом же занятии инструктор выехал на перекресток задним ходом, а потом сказал, что делать так нельзя — вообще никогда. Это правило я запомнил сразу и на всю жизнь. Читаешь детям «Вредные советы» Григория Остера, и видишь, как легко и непри.

[Из песочницы] Архитектура SPA-приложения биржи в 2020 году Приветствую, хабровчане! Читаю данный ресурс со времени основания, но время на написание статьи появились только сейчас, а значит пора поделиться своим опытом с сообществом. Начинающим разработчикам, рассчитываю, статья поможет улучшить качество проектирования, а опытным выс.

[Перевод] Советы по созданию нестандартных рабочих процессов в GitLab CI Прим. перев.: Оригинальную статью написал Miłosz Smółka — один из основателей небольшой польской компании Three Dots Labs, специализирующейся на «продвинутых backend-решениях». Автор опирается на свой опыт активной эксплуатации GitLab CI и делится накопленными советами для д.

Docs as Code. Часть 1: автоматизируем обновление В больших проектах, состоящих из десятков и сотен взаимодействующих сервисов, всё чаще становится обязательным подход к документации как к коду — docs as code. Я покажу, как можно применять эту философию в реалиях classified-сервиса, а точнее, начну с первого этапа её внедр.

Изучаем MITRE ATT&CK. Mobile Matrices: Device Access. Часть 4 Обход защиты (Defense Evasion) Ссылки на все части: Часть 1. Первоначальный доступ к мобильному устройству (Initial Access) Часть 2. Закрепление (Persistence) и Эскалация привилегий (Privilege Escalation) Часть 3. Получение учетных данных (Credential Access) Способы обхода .

Ищу голодных людей Набираю для обучению 10 человек. Десять ГОЛОДНЫХ людей. Эти 10 человек через месяц будут зарабатывать от 5-10 тысяч рублей, через 2 месяца — 15-30 тысяч рублей. Через 5 месяцев от 100 тысяч рублей в месяц. В день нужно тратить на работу от одного до 3 часов. Если трати.

[Из песочницы] Изучаем STM8S Медленный старт. Часть 0 МК семейства STM8S относительно STM8L/32 имеет меньший арсенал периферии, но позволяет без лишних усложнений разобраться с основами и получить необходимые навыки для работы с его старшими братьями. 0. На кого ориентирован материал, зачем и почему При написании данной стать.

[Перевод] Возможности современного JavaScript, о которых вы могли не знать Несмотря на то, что в последние семь лет я пишу на JavaScript почти каждый рабочий день, должен признаться, что уделяю мало внимания сообщениям о нововведениях от ES. Главные возможности вроде async/await и прокси — это одно, но ещё каждый год идёт поток мелких поэтапных и.

[Перевод] Руководство по использованию pandas для анализа больших наборов данных При использовании библиотеки pandas для анализа маленьких наборов данных, размер которых не превышает 100 мегабайт, производительность редко становится проблемой. Но когда речь идёт об исследовании наборов данных, размеры которых могут достигать нескольких гигабайт, проблемы.

[Перевод] Как повысить производительность фронтенда веб-приложения: пять советов Во многих своих фронтендовых проектах я в какой-то момент сталкивался со снижением производительности — обычно такое случается, когда возрастает сложность приложения, и это нормально. Тем не менее, разработчики всё же ответственны за производительность, поэтому в своей ста.

[Из песочницы] GameBoy на C# Когда я только начинал программировать, думаю, как и многим, мне хотелось делать игры. Но передо мной стояло множество архитектурных вопросов, которые я не знал как решить, про двойную буферизацию я даже не слышал, а получить результат хотелось как можно скорее. Поэтому неда.

С днем рождения, Сид Мейер‎ 24 февраля — день рождения легендарного разработчика игр. Ему стукнуло 65 лет. Поздравляем! «В течение всего долгого пути вы просто обречены на ошибки, и это хорошо», – говорит он. – «Нужно ошибаться и каждый раз извлекать из этого новый опыт. Нужно совершить несколько о.

RTOS или не RTOS вот в чем вопрос На написание данной статьи меня побудила длинная ветка комментариев (дискуссией это я назвать, к сожалению, не могу) к моей недавней статье “Многообразный мир embedded systems и место Embox в нем”. Меня в нескольких местах упрекнули в том, что я путаю RTOS и Embedded OS, чт.

Пишем XGBoost с нуля — часть 1: деревья решений Привет, Хабр! После многочисленных поисков качественных руководств о решающих деревьях и ансамблевых алгоритмах (бустинг, решающий лес и пр.) с их непосредственной реализацией на языках программирования, и так ничего не найдя (кто найдёт — напишите в комментах, может, что.

[Перевод] Рекомендации по созданию приложений на React Native. Часть 1 Добрый день, хабровчане. Сегодня делимся с вами переводом статьи, перевод которой был подготовлен специально для первого запуска курса «ReactJS/React Native-разработчик». Приятного прочтения. Если вы новичок в мире React Native, то вы знаете, что в нем есть некоторые по.

[Перевод] Исследование глубин аннотаций типов в Python. Часть 1 C 2014 года, когда в Python появилась поддержка аннотаций типов, программисты работают над их внедрением в свой код. Автор материала, первую часть перевода которого мы публикуем сегодня, говорит, что по её оценке, довольно смелой, сейчас аннотации типов (иногда их называют «.

Как сделать из сайта приложение и выложить его в Google Play за несколько часов. Часть 2/2: Trusted Web Activity В первой части мы превратили наш сайт в Progressive Web App. Там же было сказано, что совсем недавно, 6 февраля 2020 года, Google предоставили простую возможность выкладывать PWA в Google Play при помощи Trusted Web Activity. Всё, что нужно сделать, это написать небольшую .

[Из песочницы] Как рушатся стереотипы начинающего разработчика при старте игры Сегодня хотел бы уже начать свою деятельность на этом хабе и написать свою первую статью. Она будет посвящаться тому, как были в миг обрушены мои стереотипы об успешной карьере на Google Play для каждого желающего. И да, я начинающий разработчик на Google Play. Но давайте об.

Автоматизируем тестирование redux селекторов в приложении В этой статье я хотел бы поделиться своими идеями того, как можно автоматизировать написание unit-тестов в react/redux приложениях. Идеи эти родились в одной из дискуссий с коллегами, в процессе написания тестов, и, как мне кажется, предложенное решение имеет право на жизнь.

Повышаем продуктивность на GitHub: советы для новичков и не только От переводчика: публикуем для вас статью Даррена Барнса, который делится своим опытом работы с GitHub. Его советы будут полезны, в первую очередь, новичкам. Возможно, и опытный кодер найдет что-то для себя. GitHub — отличный сервис, которым пользуются пусть не все, но .

[Перевод] Sketch + Node.js: генерируем иконки для множества платформ и брендов Нет ничего проще, чем добавить иконку в проект: нужно всего лишь написать дизайнеру, он экспортирует её из Sketch и пришлет вам нужный вариант, а вы используете ее у себя в коде. Если же у вас с десяток проектов, несколько платформ и множество А/Б-тестов на дизайн, то дост.

[Из песочницы] Правильный редизайн сайта — пошаговый алгоритм, основные вопросы и нюансы Дизайн — работа творческая, поэтому не всегда результат работы можно предугадать и не всегда он может нас устроить. Поэтому главное, составить грамотное и понятное ТЗ. Интернет изменяется буквально каждый день, поэтому всегда необходимо следить за актуальностью и удобством .

[Перевод] Разработчикам игр пора перестать слушать своих фанатов? Тут был спор из-за статьи и я решил выложить ее перевод на всеобщее обозрение. С одной стороны, автор говорит, что разработчики не должны потакать игрокам в вопросах сценария. Если смотреть на игры, как на искусство, то я согласен — никто не будет спрашивать у комьюнити, как.

Бэкап для Linux не пишет писем Всем привет! Сегодня хочу поведать о том, как управлять Veeam Agent for Linux с помощью командной строки, и о том, какие возможности она открывает в умелых руках программиста. На написание статьи меня подтолкнул комментарий к предыдущей статье. Перефразирую удивление поль.

[Из песочницы] Создаем свой компонент с микро-шаблонами Всем привет. Все кто так или иначе писал на фреймворке Angular сталкивался или работал с библиотекой Angular Material. Это очень хорошо написанная библиотека компонентов способная к гибкой стилизации, которая реализована через возможность создания различных тем вашего прилож.

Приятное с полезным или разработка под ASIO на C++ Будучи потенциальным программистом и любителем электрогитар, я не мог остаться в стороне от разработки музыкального ПО. Все кто когда-либо пытался подключить электрогитару к компьютеру на ОС Windows, используя какой-либо гитарный процессор, знают, что зачастую для этих цел.

[Перевод] 7 привычек высокоэффективных программистов Начинающие программисты тратят много времени, набирая знания, необходимые для прохождения интервью. Они решают задачи и улучшают свои резюме. Но самое интересное начинается после того, как программист получает вожделенную должность — в каком-нибудь стартапе, в Google, в Amaz.

Написание змейки на ipad (pythonista) … или как убить время имея ipad и больше ничего. Привет! О чем речь? К сожалению, планшеты пока не заменяют компьютеры. Но покодить в поездке/полете это же жизненно необходимо. Поэтому я поискал какие ide есть под ipad, и собственно сегодня буду делать игрульку на Python.

[Из песочницы] Как начать программировать в Adobe Illustrator. Скрипт Expand Clipping Mask. Часть первая Сразу хочу предупредить, что эта серия постов не для матёрых программистов и даже не для программистов вообще. Понимаю, что это звучит крайне вызывающе, учитывая IT-тематику ресурса, и все же позвольте объяснить… В качестве аудитории, я вижу обычных дизайнеров, которые хотел.

4 приема, которые помогли нам оптимизировать frontend В трендах дизайна уже давно засели красивые анимации. UI-дизайнеры делают выверенные «карусели», загрузки, анимации меню и другие украшения, а frontend разработчики переводят их в код. Но сайт должен не только хорошо выглядеть, но и быстро работать. Современный «фронтенд» до.

Подборка: 5 полезных сервисов для написания статей на английском Всем привет! Меня зовут Марго, я профессиональный маркетолог и редактор, в последние пару лет фокусируюсь на продвижении за рубежом и много пишу на английском. Я решила поделиться ссылками на приложения и сайты, которые помогают мне в ежедневной работе при создании контент.

[Из песочницы] Dagger 2 – это элементарно (Часть 1) Содержание Введение Что такое Dependency Injection, Пример зависимости Dagger 2 – введение Первое использование Dagger 2 Введение Статья написана не продвинутым программистом для таких же, обычными и понятными словами В статье используется пример кода на Kotlin. Версия da.

[Из песочницы] Как просто наблюдать за состоянием сайта Чтобы дистанционно следить за работоспособностью серверов, профессионалы используют специальные программные комплексы, вроде Zabbix или Icinga. Но, если вы начинающий владелец или администратор одного-двух веб-сайтов с небольшой нагрузкой, то нет нужды в больших системах мон.

Wanderlust Travel Stories — «текстовый квест 21-го века» для iOS от разработчиков The Witcher В большей мере медиа упоминают об этом для привлечения аудитории, нежели по конкретной причине, но не сказать все-таки нельзя: Wandelust — это нарративное приключение от бывших разработчиков The Witcher. Wandelust Travel Stories — это текстовое приключение о современных пут.

Получение статистики по всем клиентам из API Яндекс Директ в разрезе дней с помощью Python В работе часто использую короткую статистику в разрезе дней чтобы отслеживать отклонения трафика. Более подробно о написании запросов написал в статье « Получение рекламных кампаний Яндекс Директ с помощью API в DataFrame (Python)». В данной статье я в большей степени рас.

6 советов на ночь, чтобы избежать вздутия живота и стимулировать потерю веса Вечера и ночи можно проводить по-разному: ходить на свидания, смотреть сериалы, читать или болтать по телефону. Это полезно для вашего настроения. Но почему бы не уделить частичку этого времени своему здоровью и настроить организм на снижение веса? Вот шесть простых советов.

Чего мне не хватает в Java после работы с Kotlin/Scala В последнее время я часто слышу о том, что Java стала устаревшим языком, на котором сложно строить большие поддерживаемые приложения. В целом, я не согласен с этой точкой зрения. На мой взгляд, язык все еще подходит для написания быстрых и хорошо организованных приложений. О.

Холиварный рассказ про линтеры Все мы пишем код. Много кода. Само собой, бывают ошибки. Иногда это просто кривой код, а иногда цена ошибки — взорванный космический корабль. Конечно, никто не делает намеренных косяков, все в меру возможностей стараются следить за качеством, но без инструментов статического.

Huawei представила операционную систему Harmony OS Сегодня открылась конференция Huawei Developers Conference 2020, на которой компания представила свою операционную систему — Harmony OS (китайские СМИ называют ее Hong Meng). Особенность ее — свободное использование всеми желающими, так как распространятся о.

Реверсим MIPS и Golang — основы реверса. Решение задач на реверсинг с r0от-мi. Часть 2 В данной статье разберемся с декомпиляцией MIPS бинарника в Ghidra и пореверсим программу, написанную на golang, в IDA. Часть 1 — C, C++ и DotNet decompile. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информа.

[Перевод] Изучаем Python: модуль argparse Если вы занимаетесь обработкой и анализом данных с использованием Python, то вам, рано или поздно, придётся выйти за пределы Jupyter Notebook, преобразовав свой код в скрипты, которые можно запускать средствами командной строки. Здесь вам и пригодится модуль argparse. Для но.

[Перевод] «Алгебраические эффекты» человеческим языком Комментарий от переводчика: Это перевод замечательной статьи Дэна Абрамова (Dan Abramov), являющегося контрибутором React. Его примеры написаны для JS, но будут одинаково понятны разработчикам на любом языке. Идея общая для всех. Вы слышали об алгебраических эффектах? Мои п.

Обработка ошибок в Kotlin/Java: как правильно это делать? Источник Обработка ошибок в любой разработке играет важнейшую роль. В программе может пойти не так практически всё: пользователь введёт некорректные данные, или они могут прийти такими по http, или мы ошиблись при написании сериализации/десериализации и в процессе обработки.

Юрий Бушмелев «Карта граблей на поле сбора и доставки логов» — расшифровка доклада Логи — важная часть системы, позволяющая понять, что она работает (либо не работает), как ожидается. В условиях микросервисной архитектуры работа с логами становится отдельной дисциплиной специальной олимпиады. Нужно решить сразу кучу вопросов: как писать логи из приложения.

[Из песочницы] Что не так с нашим IT Когда я только начинал смотреть в сторону программирования, а это, примерно, 2012 год, мои попытки нагуглить, что же учить и с чего начать, сводились к ответам с тогда еще незнакомого мне, stackoverflow и, казавшегося чуть ли ни единственным ресурсом в it — Хабре. С тех по.

Как часто вы сомневаетесь в собственных убеждениях? Большую часть времени люди считали, что Земля плоская Признавать собственные ошибки может быть не просто. Многие люди говорят о том, что им это неприятно. Однако если отбросить эмоциональную реакцию, то станет очевидно, что умение ставить собственные убеждения под сомнение &.

OData сервис без написания кода Одним из наиболее важных аспектов разработки программного обеспечения является быстрое создание прототипов. Для большинства служб необходимы по крайней мере некоторые операции CRUD, и большинство приложений можно описать как приложения, управляемые данными. API, которые я п.

Server Side Rendering для React App на Express.js На написание этой статьи меня сподвигло отсутствие какого-либо более-менее полного мануала, как же сделать Server Side Rendering для React приложения. Когда я столкнулся с этой проблемой, у меня было 2 варианта это сделать, либо Next.js фреймворк, либо используя Express.js.

Основы реактивного программирования с использованием RxJS. Часть 2. Операторы и пайпы В предыдущей статье мы рассмотрели, что такое потоки и с чем их едят. В новой части мы познакомимся с тем, какие методы RxJS предоставляет для создания потоков, что такое операторы, пайпы(pipes) и как с ними работать. RxJS обладает богатейшим API. В документации описано б.

[Перевод] Гниение программного обеспечения В книге «Электромагнитная эпоха: работа, любовь и жизнь, когда роботы правят миром» Робин Хэнсон кратко обсуждает программную гниль: Программное обеспечение изначально было разработано для одного набора задач, инструментов и ситуаций. Но оно медленно изменяется, чтобы справ.

[Из песочницы] VPN на роутере Билайн для обхода блокировок Билайн активно вводит в своих домашних сетях технологию IPoE. Данный подход позволяет авторизовать клиента по MAC-адресу его оборудования без применения VPN. При переводе сети на IPoE VPN-клиент роутера становится незадействованным и продолжает настойчиво стучаться в отключе.

Волшебная сила макросов, или как облегчить жизнь ассемблерного программиста AVR Про макросы в ассемблере написано много. И в документации, и в различных статьях. Но в большинстве случаев все сводится либо к простому перечислению директив с кратким описанием их функций, либо к набору разрозненных примеров готовых макросов. Цель этой статьи — описать опре.

[Перевод] 12 советов по улучшению производительности JavaScript-приложений Производительность — это один из важнейших вопросов, встающих перед разработчиками веб-страниц или веб-приложений. Никто не будет рад «падающему» от чрезмерной нагрузки приложению, или странице, которая загружается целую вечность. Пользователи веб-сайтов не готовы слишком до.

[Перевод] 9 советов по использованию библиотеки Cats в Scala Функциональное программирование в Scala может быть нелегко освоить из-за некоторых синтаксических и семантических особенностей языка. В частности, некоторые средства языка и способы реализации задуманного с помощью основных библиотек кажутся очевидными, когда ты с ними знако.

[Перевод] Метаморфическое тестирование: почему об этой перспективной методике почти никто не знает Должен признаться: я читаю ACM Magazine. Это делает меня «ботаником» даже по меркам программистов. Среди прочего, я узнал из этого журнала о «метаморфическом тестировании». Раньше я никогда о нём не слышал, как и все люди, которых я спрашивал. Но научная литература по этой .

Death Invasion: Survival 1.0.25 Death Invasion Survival – если Вы любитель кровожадных зомби, от которых за километр пахнет трупом, то это игра точно придется Вам по вкусу. В маленьком городе повсюду кишат ходячие мертвецы! Берегитесь! Вы запросто станете лакомым кусочком голодного зомби, если еще хо.

[Перевод] Тестирование не для начинающих Я большой фанат тестирования. Я пишу об этом в блог и почтовую рассылку, я обсуждаю это c другими разработчиками в свободное время, я зашел так далеко, что даже создал обучающий курс по тестированию в Go. Но несмотря на всю мою любовь к тестированию, я не рекомендую его нов.

[Перевод] Антипаттерны Vim Когда вы находитесь в состоянии потока, Vim серьёзно ускоряет редактирование, будь то написание кода, поэзии или прозы. Но поскольку кривая обучения слишком крута для текстового редактора, то очень легко сохранить вредные привычки с тех времён, когда вы только осваивали реда.

[Из песочницы] Введение в машинное обучение 1.1 Введение Благодаря машинному обучению программист не обязан писать инструкции, учитывающие все возможные проблемы и содержащие все решения. Вместо этого в компьютер (или отдельную программу) закладывают алгоритм самостоятельного нахождения решений путём комплексного испо.

Оптимизация производительности .NET (C#) приложений Статей с подобным заголовком достаточно много, поэтому постараюсь избежать банальных тем. Надеюсь, что даже очень опытные разработчики найдут здесь что-то новое для себя. В данной статье будут рассмотрены только простые механизмы и подходы к оптимизации, которые позволят п.

[Перевод] Исчерпывающий список различий между VB.NET и C#. Часть 2 В первой части статьи тема превосходства VB.NET над C# по рейтингу TIOBE нашла живой отклик в комментариях. Поэтому по совету AngReload посмотрим на тренды StackOverflow. C# все еще силен! Революция, о которой так долго говорили в прошлый раз, отменяется! Ура, товарищи! Или.

План прокачки для получения профессии Data engineer Последние восемь лет я работаю руководителем проектов (не пишу код на работе), что естественно негативно влияет на мой технологический бекэнд. Я решил сократить своё технологическое отставание и получить профессию Data engineer. Основной навык Data engineer — способность раз.

[Перевод] До Netscape: забытые веб-браузеры начала 1990-х Кто-нибудь помнит Erwise? Viola? Cello? Давайте вспоминать. Когда в 1980-м Тим Бернерс-Ли прибыл в ЦЕРН, знаменитую европейскую лабораторию физики частиц, его наняли для обновления контрольных систем нескольких ускорителей частиц. Но изобретатель современной веб-страницы п.

Загадочный «совет по этике» DeepMind возьмет под контроль общий ИИ, если тот появится Совет по этике DeepMind был тщательно охраняемым секретом с тех пор, как Google приобрела эту компанию по разработке искусственного интеллекта в 2014 году. Однако новый репортаж Хала Ходсона из The Economist проливает свет на то, как появился совет по этике и для чего он н.

Как работают поисковые системы Мы разбирали старые письма и наткнулись на статью, которую писал Илья Сегалович iseg для журнала «Мир Internet» в далёком 2002 году. В ней он сравнивает интернет и поисковые системы с чудесами света, размышляет о поисковых технологиях и вспоминает их историю. Несмотря на заг.

[Из песочницы] Как я писал ИИ для пошаговой стратегии Всем привет. Думаю, что из заголовка ясно, что речь пойдет о создании искусственного интеллекта(далее просто ИИ), о том какие решения были приняты и что в итоге получилось. Но вначале необходимо ввести Вас в курс дела. Игра написана на языке программирования Lua, поэтому и.

Бенчмарк как основание для принятия решения об изменении кода Билл Кеннеди в одной из лекций своего замечательного курса Ultimate Go programming сказал: Многие разработчики стремятся оптимизировать свой код. Они берут строчку и переписывают ее, говоря, что так станет быстрее. Нужно остановиться. Говорить, что тот или иной код быстрее, .

Карьера программиста. Глава 3. Университет Продолжение рассказа «Карьера программиста». Закончив вечернюю школу, пришла пора поступать в университет. В нашем городе был один университет технической направленности. В нем же, был один факультет «Математики и Информатики», на котором была одна кафедра «Компьютерных сис.

Can I haz? Ударим программированием на типах по дженерикам Привет, Хабр. В прошлый раз мы описали Has-паттерн, обрисовали проблемы, которые он решает, и написали несколько конкретных инстансов: instance HasDbConfig AppConfig where getDbConfig = dbConfig instance HasWebServerConfig AppConfig where getWebServerConfig = webServerCo.

[Перевод] Как eBay делал сканер штрих-кодов на WebAssembly С момента своего анонса технология WebAssembly сразу привлекла внимание разработчиков фронтенда. Веб-сообщество с энтузиазмом восприняло идею запустить в браузере код, написанный на других языках, кроме JavaScript. Главное, что WebAssembly гарантирует скорость намного выше, .

Java REPL вам не ScriptEngine Привет, Хабр! Меня зовут Дима, я разработчик в команде “Архитектура” в hh.ru. Среди прочего, я занимаюсь тем, что делаю разработку проще для коллег. Выполнение кода в продакшене является типовой задачей. Поэтому когда я услышал, что с этим есть проблемы, я решил заняться и.

Инженерный подход к разработке ПО. От теории к практике Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Что делать, когда возможностей тестов недостаточно? Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндекс.П.

[Перевод] 20 вещей, которые мне хотелось бы знать, прежде чем стать веб-разработчиком В самом начале своей карьеры я не знал многих важных вещей, которые для начинающего разработчика являются крайне полезными. Оглянувшись назад, я могу сказать, что многие мои ожидания не оправдались, они и близко не соответствовали реальности. В этой статье я расскажу о 20.

Суровая сибирская JVM: большое интервью об Excelsior JET Недавно мы писали о том, на какие ухищрения пошла Alibaba, чтобы сделать себе жизнь с OpenJDK более приемлемой. Там были комментарии вроде «оказывается, пока мы тут страдаем с обычной джавой, китайцы уже сделали себе свою особенную». Alibaba, конечно, впечатляет — но и в Рос.

[Перевод] Почему все мои игры выглядят так отстойно Мы потратили на создание этой игры несколько лет. От неё зависит будущее нашей семьи. Почему же она так ужасно выглядит? Я уже 25 лет зарабатываю на жизнь написанием инди-игр. У нас с женой есть небольшой семейный бизнес. Мы создаём низкобюджетные ролевые игры в ретро-стил.

[Перевод] Дизайн низкополигональных персонажей Персонаж — это личность. Без истории нет индивидуальности. Каждый хороший персонаж начинается с истории, а дизайн персонажа должен рассказать эту историю. В своей предыдущей статье How To Make Low Poly Look Good я говорил, что главная цель низкополигонального (low poly) ди.

[Из песочницы] Откуда растут ноги у Java Memory Model Современное железо и компиляторы готовы перевернуть с ног на голову наш код, лишь бы он работал быстрее. А их производители тщательно скрывают свою внутреннюю кухню. И все прекрасно, пока код выполняется в одном потоке. В многопоточной среде можно волей-неволей наблюдать и.

[Из песочницы] Как и зачем я писал парсер для сайта Tradingview. Автоматизация торговли своими руками Проблема: На текущий момент наиболее удобным и полноценным программным обеспечением (далее ПО) для автоматизации торговли на российском биржевом рынке является небезызвестный ТСЛАБ. Несмотря на несомненные плюсы в виде удобного визуального редактора для написания торговых ск.

Как написать вредное API Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. Всем привет! Я работаю тимлидом команды Integration Development в сервисе онлайн-бронирования отелей Ostrovok.ru и сегодня хотел бы поделиться своим опытом работы с ра.

Функциональное тестирование навыков Яндекс Алисы на Node.js Прошел почти год с того момента, как появилась возможность создавать свои навыки для Алисы — голосового помощника от Яндекса. В каталог ежедневно прибывают новые навыки, а их общее число составляет несколько сотен. К сожалению, общение с некоторыми навыками мягко говоря «не.

Взгляд изнутри: аспирантура в EPFL. Часть 4.1: повседневная жизнь Посещая любую страну важно не путать туризм с эмиграцией. Народная мудрость В прошлых статьях (часть 1, часть 2, часть 3) мы затронули тему профессиональную, что ждёт молодого и ещё зелёного выпускника ВУЗа при поступлении, а также во время обучения в Швейцарии. Следующая ч.

Правильно «готовим» прототип. Технологии прототипирования корпуса Как выбрать правильную технологию для прототипа корпуса любого устройства, какие головные боли возникают у разработчиков, когда виртуальная 3D-модель становится физической, и как их лечить? Смотрите инструкцию. Главное здесь — понять, что конкретная технология прототипирован.

Надежное программирование в разрезе языков — нубообзор. Часть 1 В очередной раз провозившись два дня на написание и отладку всего четырехсот строк кода системной библиотеки, возникла мысль — “как бы хорошо, если бы программы писались менее болезненным способом”. И в первую очередь, поскольку отладка занимает гораздо больше времени, чем .

НЛП для айтишников: интервью Не думал я, честно говоря, что буду писать здесь о НЛП, я больше расчитывал на написание технических статей для блогов. Но так получилось что вопрос о собеседовании и НЛП возник в одной из дискуссий и я очень удивился насколько много непонимания в этом вопросе среди коллег. .

А как в действительности ищут программистов кадровые агентства? Как некоторые заказчики представляют себе работу кадровых агентств? Мол, я сейчас приду туда, а у них там есть «шкаф с программистами», откуда мне покажут несколько горячих резюме и я между ними выберу. Формально оно как бы так и происходит: заключили договор, потом прихо.

Сериал «Чернобыль»: смотреть и думать Горький опыт сериалов, которые хорошо начинаются и разочаровывающе заканчиваются, удерживал меня от написания восторженного обзора на сериал «Чернобыль» до этой недели. И сейчас, когда вышла последняя, пятая серия, к сожалению, я вынужден сказать, что это отличный сериал, эт.

Импортозамещение на практике. Часть 1. Варианты Введение В связи с тем, что близится 2020 год и «час хэ», когда нужно будет отчитаться об исполнении приказа Минкомсвязи о переходе на отечественное ПО (в рамках импортозамещения), да не простое, а из реестра Минкомсвязи, мне прилетела задача о разработке плана, собственно.

Программист-защитник сильнее энтропии © Dragon Ball. Goku. Программист-защитник в любой момент и в любом месте кода ожидает появления потенциальных проблем и пишет код таким образом, чтобы заранее от них защититься. А если от проблемы нельзя защититься, то хотя бы сделать так, чтобы её последствия и влияние на .

[Перевод] Разработка простых современных JavaScript-приложений с использованием Webpack и прогрессивных веб-технологий Думали ли вы о том, чтобы воспользоваться при разработке своего очередного веб-проекта простейшим из существующих набором технологий? Если это так — значит материал, перевод которого мы публикуем сегодня, написан специально для вас. JavaScript-фреймворки существуют для того.

Вам не нужен Redux Очередная статья, которая, возможно, так и останется в черновиках, но если вы это читаете, то все-таки это свершилось. К написанию статьи послужил опыт с Redux, потому что повестись на хайп было опрометчивым решением. Благо, архитектура приложения позволяла его выпилить без.

[Из песочницы] Программ для изучения английского очень много, но стоит ли какой-нибудь из них пользоваться если ты программист? Всем привет, меня зовут Алексей. Я давно увлекаюсь программированием, хоть это и не является моей основной профессией. А ещё где-то год назад я увлёкся изучением английского языка. Много статей написано о том, как учить английский язык. Но если ты владеешь навыками програм.

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

Переупаковка пакетов в Gradle В своей статье хочу рассказать об очередной хитрости, которую можно довольно просто реализовать с помощью Gradle — переупаковке пакетов библиотек. Каждый, кто хоть чуть чуть работал с этой системой сборки, знает, что она автоматически умеет решать конфликты разных версий биб.

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

[Из песочницы] Продвинутый Debug Debug Area — полезная функция в работе iOS разработчика в Xcode. Как только мы начинаем осваивать разработку под iOS, и пытаемся отойти от привычного и любимого print метода, и найти более быстрые и удобные методы понимания состояния системы в определенный период мы начинаем.

Как быстро зарядить смартфон? Советы для тех, кто хочет всегда быть на связи Каждый из владельцев современного смартфона знает, насколько неприятно видеть разряженный аппарат, особенно когда нет возможности или времени его зарядить. В этой статье мы дадим несколько интересных и полезных советов для быстрой зарядки любого телефонного аппарата или план.

[Перевод] Python-скрипт на 20 строк, который каждый день желает родителям доброго утра через WhatsApp Автор материала, перевод которого мы сегодня публикуем, говорит, что современные люди, жизнь которых переполнена работой, часто забывают писать сообщения своим родным и близким. Он, глядя на то, как его родители каждое утро шлют ему в WhatsApp вдохновляющие цитаты и полезные.

[Перевод] Кодогенерация в Dart Известно, что для программиста очень хорошо быть ленивым, потому что делать больше с меньшими затратами — ключ к прогрессу. Никто не любит делать одно и то же снова и снова. Это утомительно, скучно, да и совсем не креативно. Повторяя одно и то же действие мы часто делаем оши.

Онлайн казино Фараон и его преимущества 21 век — это время невероятных разработок и свершений, когда абсолютно каждый из нас может найти себя в чём-то особенном. Стоит отметить, что с помощью современных технологий, каждый из нас может не просто пользоваться интернетом для игр, множеством разнообразных покуп.

Optlib. Реализация генетического алгоритма оптимизации на Rust В этой статье описывается библиотека optlib, предназначенная для решения задач глобальной оптимизации на языке Rust. На момент написания этой статьи в этой библиотеке реализован генетический алгоритм нахождения глобального минимума функции. Библиотека optlib не привязана к к.

Книга «Учимся кодить на JavaScript» Привет, Хаброжители! Мы издали книгу для мальчиков и девочек от 10-11 лет которая поможет самостоятельно, без помощи родителей и учителей, написать программный код. Ты любишь играть онлайн? Общаться с друзьями через ВКонтакте, Фейсбук и Инстаграм? Смотреть видеоролики на см.

[Перевод] 5 продвинутых техник тестирования на Go Всем салют! До старта курса «Разработчик Golang» остается меньше недели и мы продолжаем делиться полезным материалом по теме. Поехали! Go имеет хорошую и надежную встроенную библиотеку для тестирования. Если вы пишите на Go, то вы уже это знаете. В этой статье мы поговори.

[Из песочницы] Что нужно для разработки игр и кем реально является разработчик игр Большинство людей (нормальных), которые планируют заниматься программированием (как хобби или основной профессией) обычно задаются вопросами: «Что такое программирование?», «Зачем мне нужно программирование?», «Какой язык я буду учить?», «Что я получу в итоге?». Таким был и.

Самодокументируемый REST сервер (Node.JS, TypeScript, Koa, Joi, Swagger) Про преимущества и недостатки REST написано уже довольно много статей (и еще больше в комментариях к ним) ). И если уж так вышло, что вам предстоит разработать сервис, в котором должна быть применена именно эта архитектура, то вы обязательно столкнетесь с ее документировани.

Советы по прохождению Pokémon Rumble Rush: подсказки для начинающих Pokémon Rumble Rush- это свежая экшн-RPG, которая бросает вам вызов и приглашает сразиться с противниками, используя собранных вами покемонов всех возможных видов. Чем сильнее станут обученные вами покемоны, тем более могущественных боссов предложит вам игра. Битвы здесь .

Файлы по рельсам. Как читать любые файлы с сервера через Ruby on Rails Для подписчиковТы наверняка в курсе, что такое Ruby on Rails, если когда-нибудь сталкивался с веб-девом. Этот фреймворк в свое время захватил умы разработчиков и успешно применяется до сих пор. Любая уязвимость в нем означает огромное количество потенциальных целей. В этот р.

[Перевод] Новости из мира OpenStreetMap № 480 (24.09.2020-30.09.2020) CyclOSM is a brand new bike-oriented map 1 | Leaflet | CyclOSM v0.2 | Map data OpenStreetMap contributors О нас Уточнение: пользователь AndiTabinas не является участником программы стипендии SotM-2020 (об этом мы ошибочно написали в прошлом выпуске № 479). Информация (пос.

[Из песочницы] Пишем первый микросервис на Node.js с общением через RabbitMQ Со временем, каждый проект растет и реализовывать новый функционал в существующий монолит становится все сложнее, дольше и дороже для бизнеса. Один из вариантов решения данной проблемы — использование микросервисной архитектуры. Для новичков или для тех, кто впервые сталкива.

Новая игра со старой атмосферой на Three.js. Часть 2 В первой части я рассказал о проблемах, с которыми я столкнулся в процессе создания 3D игры под браузер c использованием Three.js. Теперь я хотел бы подробно остановиться на решении некоторых важных задач при написании игры, типа конструирования уровней, определения столкнов.

Lazarus — пишем компонент для анимации спрайтов Вместо предисловия В одесской школе ученики 8-го класса на уроках информатики используют бесплатную кроссплатформенную среду разработки Lazarus (официальный сайт: www.lazarus-ide.org), внешне и внутренне очень напоминающую любимый многими Delphi, использующую версию Object P.

5 советов о Design Leadership. Часть 1 Всем привет. Уже в этом месяце мы запускаем курс «Team Lead 2.0», который подготовлен специально для старших разработчиков, TeamLead’ов, SCRUM мастеров и специалистов, желающих повысить свой профессиональный уровень и получить уникальный опыт, необходимый для эффективного уп.

ИГРАЙ КАК ЧЕМПИОН – СОВЕТЫ ОТ PREDATOR 10 советов по улучшению игровых навыков при использовании мониторов Predator Надоело проигрывать битвы? Если вы хотите улучшить свои игровые навыки, мы можем вам помочь. Всем известно, что лучшие профессионалы в серии турниров Intel Extreme Masters не родились такими. Они до.

[Из песочницы] Простой Telegram-бот на Python за 30 минут На Хабре, да и не только, про ботов рассказано уже так много, что даже слишком. Но заинтересовавшись пару недель назад данной темой, найти нормальный материал у меня так и не вышло: все статьи были либо для совсем чайников и ограничивались отправкой сообщения в ответ на сооб.

[Из песочницы] Как я свой первый ИИ писал Привет, Хабр. История моя берёт начало в январе 2020 года. Мы с моей тимой геймдевелоперов решили взяться за самый большой проект в нашей истории- 2Д платформер. Нет, мы не делали до этого какие-нибудь FlappyBird’ы или змейки, но объём работы в этом проекте просто сносил на.

Ошибки, которые не находит статический анализ кода, потому, что он не используется Время от времени читатели наших статей о проверке открытых проектов обращают внимание, что статический анализатор кода PVS-Studio выявляет большой процент ошибок, которые незначительны или вообще не влияют на работу приложения. Это действительно так. Большинство важных ошибо.

[Из песочницы] Назад в будущее с WebAssembly Привет, Хабр! Представляю вашему вниманию перевод статьи «Back To The Future With WebAssembly» автора Attila Vágó. Данный пост является переводом статьи, в которой рассказывается о свойствах WebAssemly и Emscripten. Оригинал статьи на английском языке. Автор статьи Аттила .

[Перевод] Горячие клавиши Unreal Engine, которые сделают жизнь левел-дизайнера проще Горячие клавиши используют все. Банальные Ctrl+C и Ctrl+V, а сколько раз выручал Ctrl+Z? Ну а Alt+F4? А если вспомнить количество негативных отзывов, когда в новых MacBook Pro добавили тачбар и вырезали ряд командных клавиш? Увидел хороший гайд по полезным хоткеям и небольш.

Книга «Искусство программирования на R. Погружение в большие данные» Привет, Хаброжители! Многие пользователи используют R для конкретных задач — тут построить гистограмму, там провести регрессионный анализ или выполнить другие отдельные операции, связанные со статистической обработкой данных. Но эта книга написана для тех, кто хочет разраба.

Тестовые задания на собеседовании разработчика — есть ли в них смысл? За свою долгую IT-карьеру я успел побывать по обе стороны собеседований и увидеть весь блеск, нищету, маразм и здравые мысли тестовых заданий, выдаваемых на технических собеседованиях разработчиков ПО. Читать дальше →

Чтобы робот смог позаботиться о вас в старости, ему придется учиться с нуля — как ребенку Вполне вероятно, что очень скоро роботы будут жить в домах с людьми, помогая пожилым людям жить самостоятельно. Но для этого им придется научиться выполнять всю маленькую работу, которую люди могли бы выполнять не задумываясь. Многие современные системы искусственного интел.

[Из песочницы] Агрегатор событий для Unity3d (Event Aggregator) Идея написать свой расширенный агрегатор событий для Unity3d назрела давно. Прочитав несколько статей на эту тему, я понял что нет достаточно «правильного» (в рамках Unity3d) и нужного для меня агрегатора, все решения урезаны и не обладают нужным функционалом. Необходимый .

Разработчики навыков для Алисы смогут следить за отзывами пользователей из консоли В консоли разработчика навыков появилась возможность читать отзывы пользователей, а также отслеживать изменения оценок: С сегодняшнего дня разработчики навыков смогут найти в консоли всю информацию о том, что пользователи когда-либо писали об их навыках. Если .

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

Решение проблемы «Тихой речи и громких спецэффектов» в фильмах для Android Ни для кого не секрет, что во всех фильмах, сериалах, без исключения, присутствуют резкие перепады громкости звука, которые делают не комфортным просмотр видео, особенно если вы смотрите фильмы в ночное время. Перепады громкости, слишком громкие спецэффекты, звуки выстр.

Создание stateful навыка для Алисы на serverless функциях Яндекс.Облака и Питоне Начнём с новостей. Вчера Яндекс.Облако анонсировало запуск сервиса бессерверных вычислений Yandex Cloud Functions. Это значит: ты пишешь только код своего сервиса (например, веб-приложения или чатбота), а Облако само создаёт и обслуживает виртуальные машины, где он запускает.

[Перевод] 26 рекомендаций по использованию типа var в Java The Java Local Variable Type Inference (LVTI) или кратко — тип var (идентификатор var — это не ключевое слово, а зарезервированное имя типа) был добавлен в Java 10 с помощью JEP 286: Local-Variable Type Inference. Являясь 100% функцией компилятора, она не влияет на байт-код.

[recovery mode] OSCP — Оскорбительная безопасность Как получить сертификат OSCP (Offensive Security Certified Professional Пожалуй, «оскорбительная» безопасность — это лучший перевод того направления деятельности, о котором мы сегодня поговорим. Конечно, Offensive – это еще и наступательная, и даже агрессивная, но сейчас реч.

[Перевод] Мутационное тестирование: тестируем тесты Написание тестов должно вселять в нас уверенность в корректной работе кода. Часто мы оперируем степень покрытости кода, и когда достигаем 100 %, то можем сказать, что решение корректное. Уверены в этом? Быть может, есть инструмент, который даст более точную обратную связь? .

[Перевод] Создаем бота для несложной отчетности при помощи Python и Google BigQuery Есть ли у вас задачи, которые повторяются изо дня в день, из недели в неделю? Например, написание отчетов. Вы запрашиваете данные, проводите анализ, визуализируете (делаете графики, диаграммы), а затем отправляете начальнику. Но что, если все это автоматизировать? В это.

[Из песочницы] Сериализация данных на уровне базы Привет, Хабр! Сидел я как-то и пытался отдать фронту JSON с объектами недвижимости, у которых была масса зависимостей. На бэке стояла Symfony 4, knp pagination и JMSSerializer, ну в принципе стандартные вещи, но проблема в том, что когда ты пытаешься отдать объект со всеми .

[Перевод] Неочевидные навыки, необходимые менеджеру продукта Позвольте я раскрою тайну, которую в управлении продуктами скрывают — по крайней мере, об этом не говорят вслух: нас не слишком заботят профессионально-технические навыки. И о каких навыках речь? Оформление требований к продукту? Проведение опросов среди пользователей? Пон.

[Перевод] Блокировки в Postgres: 7 советов по работе с блокировками И снова здравствуйте! Уже в следующий вторник стартует новый поток по курсу «Реляционные СУБД», поэтому мы продолжаем публиковать полезный материал по теме. Поехали. На прошлой неделе я писал о конкурентном доступе в Postgres, какие команды блокируют друг друга, и как вы .

Game of Evolution — смесь из кликера и merge-механики в сеттинге эволюции Кликеры — очень необычный жанр. По сути, это развлечение с доведенным до абсолюта уровнем простоты. В кликерах действительно можно ничего не делать и «получать удовольствие». Если, конечно, не считать активными действия процесс периодического входа в игру, чтобы собирать наг.

На что способны новые робокубики M-Block Робокубики 2.0 имеют некое подобие штрих-кода на каждой грани, который они могут «прочитать». Это позволяет кубикам двигаться по определенному маршруту и встраиваться в общую конструкцию не хаотично, как это делали M-Block предыдущей версии, а определенной стороной и в опред.

Спортфишка — ваше место для получения дополнительного заработка В современном мире каждый из нас неоднократно в интернете находился в поисках успешного варианта заработка, который вы сможете найти здесь: https://sportfishka.com/. Это и понятно, ведь всем хочется жить достойно, получать хорошие деньги, наслаждаться этой жизни в конце концо.

GPS трекер BOXY Привет, Хабр! GPS трекером уже никого не удивишь — это факт. Написать этот краткий обзор решил, когда первый раз взял в руки эту «фитюльку». Ну, по порядку: появилась задача – оснастить трекером домашнего питомца. Не то чтобы он убегал постоянно, но для общего спокойствия ч.

Ученые доказали правоту Ницше Исследователи проанализировали данные ученых, которые в начале своей карьеры подавали заявки на получение грантов R01 от Национального института здравоохранения (NIH). Это было в период с 1990 по 2005 год. Рассмотрев заявки NIH принимал решение о предоставлении гранта или от.

Как QA организовать автоматизацию тестирования на проекте. Один практически примененный способ Некоторое время назад я написала статью о своем опыте организации работы QA Инженера на проекте. Сейчас хочу продолжить эту тему, но уже в более узком ее направлении — автоматизации тестирования. Речь пойдет о том же самом проекте, он небольшой, но развивающийся под запросы .

Make Your Database Dream of Electric Sheep: Designing for Autonomous Operation Как вы думаете, кто лучше настроит PostgreSQL — DBA или ML алгоритм? И если второй, то пора ли нам задуматься, чем заняться, когда нас заменят машины. Или до этого не дойдет, и важные решения все-таки должен принимать человек. Наверное, уровень изоляции и требования к устойч.

[Перевод] Радикальные советы о том, как меньше зависать в телефоне Начав использовать эти принципы, я наконец вернул себе собственную жизнь Он лежит в кармане. Лежит на столе. Ждет вас в подстаканнике машины. Вам хочется использовать его. Давайте, возьмите его и облегчите скуку или дискомфорт. Можно даже просто листать заголовки новостей.

Парикмахерская мойка Салоны красы постоянно манят как магнит, ведь непосредственно тут начинается наше изменение и формирование нового вида, а парикмахерская мойка в них необходимый атрибут. В определенные салоны не терпится всегда вернуться, а в другие — мгновенно забываешь дорогу. Все де.

Нам не нужны правки перевода: нашему переводчику виднее, как это должно переводиться Этот пост — попытка достучаться до издательств. Чтобы те услышали и отнеслись к своим переводам более ответственно. За свой пусть разработчика я купил много различных книг. Книг самых разных издательств. И малых и больших. Прежде всего — больших издательств, у которых есть .

Google выпустила пять новых приложений для смартфонов, чтобы побороть зависимость от смартфонов Компания Google представила сразу пять новых экспериментальных приложений для смартфонов, призванных помочь контролировать цифровую зависимость и время, проведённое за гаджетами. В прошлом году Google представила функцию Digital Wellbeing (Цифровое благополучие) .

Google выпустила пять новых приложений для смартфонов, чтобы побороть зависимость от смартфонов Компания Google представила сразу пять новых экспериментальных приложений для смартфонов, призванных помочь контролировать цифровую зависимость и время, проведённое за гаджетами. В прошлом году Google представила функцию Digital Wellbeing (Цифровое благополучие) .

Перевод книги «Using Google Analytics with R» (Michal Brys) Электронная книга «Using Google Analytics with R» (Michal Brys) представляет собой практическое руководство по анализу данных из Google Analytics в R. Написана дата-сайентистом в 2014 году, но ничуть не теряет своей актуальности и сегодня. Читать дальше →

[Из песочницы] Из гуманитария в разработчики в цифрах и красках Привет, Хабр! Давненько читаю тебя, но все никак не доходили руки написать что-нибудь свое. Как обычно – дом, работа, личные дела, туда сюда – и вот ты снова отложил написание статьи до лучших времен. Недавно кое-что изменилось и я расскажу вам, что же сподвигло меня описать.

[Перевод] Sketch + Node.js: генерируем иконки для множества платформ и брендов. Часть 2 Это вторая часть статьи о создании инструмента, способного экспортировать все помещённые в Sketch-файл иконки: в разных форматах, для разных платформ, с возможностью A/B-тестирования каждой из иконок. Первую часть вы можете прочесть по ссылке. В прошлый раз мы подготов.

Как мы разрабатываем персональные товарные рекомендации Наши клиенты-магазины хотят делать крутой маркетинг. Чтобы люди больше покупали, они регулярно шлют им email-рассылки. И каждый раз думают: “Что же написать в письме?”. Можно писать просто: “Покупайте у нас почаще!”, но это не очень-то работает. Идея получше — вставлять в п.

Рекламные листовки — эффективный способ увеличения продаж! Как заинтересовать читателей рекламными листовками? Большинство выбрасывают их сразу же, едва прочитав содержимое. Креативный подход поможет разработать листовки, которые будут читать с интересом. Необходимо придерживаться следующих правил: Материал должен быть познаватель.

А вы приносите плохие новости руководству? Хочу поговорить о таком важном качестве, как ответственность за ошибки, как свои так и команды. Одно из самых сложных и не приятных, на мой взгляд, решений для разработчика или руководителя (да да это всегда сложно), это обнаружив свою ошибку на проде или в вот-вот готовящ.

[Перевод] Профессиональная контейнеризация Node.js-приложений с помощью Docker Автор материала, перевод которого мы публикуем сегодня, работает DevOps-инженером. Он говорит, что ему приходится пользоваться Docker. В частности, эта платформа для управления контейнерами применяется на разных этапах жизненного цикла Node.js-приложений. Использование Docke.

[Из песочницы] DevOps в разработке: автоматизация написания кода веб-приложений Доброго времени суток, уважаемые Хабражители! Сегодня DevOps находится на волне успеха. Практически на любой конференции, посвященной автоматизации, можно услышать от спикера мол “мы внедрили DevOps и тут и там, применили это и то, вести проекты стало значительно проще и т.

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

[Перевод] Дизайн геймплея, основанный на принятии решений (Эта статья изначально была опубликована в Gamasutra Online Magazine) Чтобы развить полезное понимание системы, нужно знать, как система работает изнутри, на самом нижнем уровне. Даже полное запоминание каждого входного сигнала и реакции на него, связанной с этой системой.

Почему в ITIL 4 процессы ITIL больше не главное? Если до 2020 года вы успели поучиться ITIL, то, несомненно, успели заметить, насколько важная роль в нём отведена процессам. Однако если посмотреть на ITIL 4 Foundation, то становится очевидно, что фокус сместился от процессов в пользу практик, потоков создания ценности и р.

[Перевод] Python как предельный случай C++. Часть 2/2 Продолжение. Начало в «Python как предельный случай C++. Часть 1/2». Переменные и типы данных Теперь, когда мы окончательно разобрались с математикой, давайте определимся, что в нашем языке должны означать переменные. В С++ у программиста есть выбор: использовать автоматичес.

[Перевод] Случайные поверхности скрывают в себе замысловатый порядок Математики доказали, что случайный процесс в применении к случайной поверхности неизменно порождает определённые закономерности В оригинале статьи это трёхмерное изображение, которое можно покрутить В фильме про поиски потерянного Ковчега Индиане Джонсу пришлось искать пот.

[Перевод] Один язык чтобы править всеми Скрытый под слоем кода, томится язык, жаждущий быть выученным. На момент написания этой статьи запрос «программирование какой язык изучать первым» выдаёт 517 миллионов поисковых результатов. Каждый из этих сайтов будет нахваливать один определённый язык, и 90% из них, в кон.

Реверс-инжиниринг приложений после обфускации (Часть 2) Введение Данная публикация направлена на изучение некоторых приемов реверс-инжиниринга. Все материалы представлены исключительно в ознакомительных целях и не предназначены в использовании в чьих-либо корыстных целях. Рекомендуется к протчению после первой части Если хирург.

Проектирование Базы Данных. Лучшие практики В преддверии старта очередного потока по курсу «Базы данных» подготовили небольшой авторский материал с важными советами по конструированию БД. Надеемся данный материал будет полезен для вас. Базы данных повсюду: от простейших блогов и директорий до надежных информационны.

Учиться и спрашивать: как делиться знаниями с коллегами Задача руководителя – делать сотрудников героями, уверена Екатерина Иртикеева, экс-генеральный директор «Дирекции города-организатора Самары по подготовке и проведению в 2020 году чемпионата мира по футболу», член ассоциации «Профессиональное сообщество директоров «Директори.

[Перевод] Современные возможности C++, о которых надо знать всем программистам Автор материала, перевод которого мы сегодня публикуем, говорит, что C++, в его современном виде, если сравнивать его с тем, чем был этот язык несколько лет назад, значительно изменился в лучшую сторону. Конечно, эти изменения произошли далеко не сразу. Например, в былые вре.

Девушка в IT, или 5 советов для амбициозных В конце прошлого года меня пригласили выступить на мероприятии Worldwide Conversation on Women’s Higher Education and Equality in the Workplace на факультете компьютерных наук ВШЭ. Это беседа о том, как в современном мире женщина может построить успешную карьеру в области на.

[Из песочницы] GridmiAPI — простая и гибкая библиотека Android для работы с REST&RPC Здравствуйте, хабровчане! Когда занимаешься разработкой сетевых приложений под платформу Android, понимаешь, что одно и другое приложение похоже друг на друга. С этой мыслью у большинства разработчиков инициализируется и другая мысль — «Почему бы мне не использовать какие-л.

Как стать Android-разработчиком Сегодня разберем с чего начинать изучение Android-разработки и как найти первую работу. Для создания все новых и новых мобильных приложений компаниям нужны талантливые разработчики: профессия востребована, и специалистам готовы платить. По статистике зарплатного сервиса «Мо.

Статическое распределение объектов FreeRTOS По умолчанию все объекты в системе FreeRTOS распределяются динамически — очереди, семафоры, таймеры, задачи (потоки), и мьютексы. Программист видит только «кучу» — область где динамически выделяется память по запросу программы или системы, а что там творится внутри – не ясно.

Я вам перезвоню Привет, я Катя, я нашла работу. И написала методичку по общению с работодателем. Расскажу, что спрашивать на собеседовании, чего не спрашивать и как это делать правильно. Весь месяц гоняла по собесам. Посмотрела и на стартапы и на Яндексы. Компаний много, выбирать сложно.

[Перевод] 5 важных и упущенных навыков, необходимых лучшему разработчику Предисловие Вы видели эти статьи тысячу раз: «10 вещей, которые нужно создать чтобы стать лучшим разработчиком.» «Лучшие фреймворки для изучения в 2020.» «Сделайте это чтобы стать разработчиком Rockstar.» «Прочитайте эти десять технических книг, и Вы станете успешным раз.

[Перевод] Как помочь выгорающей на работе команде, если вы и сами выгорели? Как менеджер, вы должны заботиться о ваших сотрудниках и поддерживать их в периоды большой рабочей загрузки, чтобы они не выгорели на работе. Однако это может быть тяжёлым испытанием, если вы и сами чувствуете слишком большую нагрузку. Как позаботиться о себе, чтобы у вас .

[Из песочницы] Как создать игру, если ты ни разу не художник В жизни каждого программиста бывали моменты, когда он мечтал сделать интересную игру. Многие программисты эти мечты реализовывают, и даже успешно, но речь сейчас не о них. Речь о тех, кто любит играть в игры, кто (даже не имея знаний и опыта) и сам пытался их когда-то созда.

Метод бисекционного деления в тестировании Содержание Описание метода Применение тестировщиками Строка данных Файл Применение разработчиками Резюме Иногда баги сами нас находят. Вот мы впихали большую строку данных — и система подвисла. Это она из-за 1 млн символов упала? Или ей какой-то конкретный не понравилс.

Разработка и продвижение сайтов на заказ Многие пользователи рассуждают, что достаточно создания сайта, как сразу миллионная аудитория проявит свой интерес. Некоторые думают, что созданный ресурс обязан самостоятельно попасть в ТОП выдачи поисковых систем. Это обычная некомпетентность. Основной задачей владельца лю.

Как я разрабатываю и тестирую API со своим «велосипедом» PieceofScript PieceofScript — простой язык для написания сценариев автоматического тестирования HTTP JSON API. PieceofScript позволяет: описывать методы API в формате YAML, с названием метода на почти естественном языке, что удобно для чтения тестов достаточно гибко описывать модели в.

Правильный выбор: практическое исследование когнитивных способностей человекообразных обезьян Что общего между шваброй, письменным столом, автомобилем и телескопом Хаббл? Все это разные и по сложности реализации, и по цели применения, и по важности вещи. Однако их можно объединить в одну общую категорию — инструменты. Все эти предметы мы, люди, используем как помощ.

Как просить о пожертвованиях и не выглядеть жалко? ККогда мы просим деньги, то мы просим помощи у человека. Не у целевой аудитории, а у человека. В этой статье мне захотелось пофантазировать от своего лица: как бы мне хотелось, чтобы у меня просили деньги. Как построить диалог так, чтобы просящий вызывал уважение, а не жало.

Как найти сотрудника мечты: 6 советов владельцу малого бизнеса Как создать вакансию, нужно ли раскрывать зарплату и чем могут помочь конкуренты. Рассказываем, что нужно делать на hh.ru, если у вас малый бизнес.

[Перевод] Как разобраться в «иностранном» коде и влиться в новую команду? Как только разработчик попадает в компанию и получает задачу, чаще всего оказывается, что ему нужно присоединиться к общему проекту какой-то команды, а не писать свой код с нуля. Любой код имеет собственную логику, основан на определенных принципах, в нем встречаются па.

Полный привод в матрицах 4×4 Само умножение нехитрое, элементы строк умножаются на столбцы поэлементно и складываются. Как корректно умножать можно посмотреть здесь Языковая часть написана на Delphi, а для оптимизации код выполнен с применением встроенного 64-х битного ассемблера. Рассматриваются 4 прак.

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

[Перевод] Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 1 Серверный код в Instagram пишут исключительно на Python. Ну, в основном это именно так. Мы используем немного Cython, а в состав зависимостей входит немало C++-кода, с которым можно работать из Python как с C-расширениями. Наше серверное приложение — это монолит, представ.

[Перевод] Пишем API для React компонентов, часть 5: просто используйте композицию Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важен Пишем API для React компонентов.

От выдачи кредитов к бэкенду: как изменить свою карьеру в 28 лет и переехать в Питер, не меняя работодателя Сегодня публикуем статью студента GeekBrains Сергея Соловьева (SergeySolovyov), в которой он делится опытом кардинального изменения карьеры — от кредитного специалиста до бэкенд-разработчика. В этой истории интересным моментом является то, что Сергей сменил специальность, .

[Перевод] 12 советов для тех, кто использует Redux при разработке React-приложений Когда речь идёт о разработке React-приложений, то, в плане архитектуры кода, маленькие проекты часто бывают более гибкими, чем большие. Нет ничего плохого в том, чтобы создавать такие проекты с использованием практических рекомендаций, нацеленных на более крупные приложения.

Code review: вредные советы для контрибьютера и ревьювера Привет! Меня зовут Николай Ижиков. В этом посте я хочу рассказать об одном важном элементе взаимодействия, с которым мы сталкиваемся в процессе разработки ПО, особенно в open source. Это прохождение и проведение code review. Я дам вредные советы, как сделать свою фичу и до.

[Перевод] Пишем кастомный трансформер AST на TypeScript Команда TestMace снова с вами. На этот раз мы публикуем перевод статьи о преобразовании кода TypeScript, используя возможности компилятора. Приятного чтения! Введение Это мой первый пост, и в нём мне бы хотелось показать решение одной задачи с помощью API компилятора TypeScr.

Почему никогда не поздно начать изучение Java (или других ЯП) Автор статьи: Джон Селавски (John Selawsky). Любви все возрасты покорны. Многие соглашаются с этим выражением, однако мы убеждаем себя, что уже поздно учиться или менять профессию. Почему бы нам не использовать этот подход ко всему, что мы бы хотели достичь, особенно когд.

[Перевод] 6 небольших советов чтобы подготовить NodeJS к высоким нагрузкам Сервис с распознаванием лиц «Look-A-Like» обслуживал тысячи пользователей одновременно Разработка на NodeJS в качестве хобби — сплошное удовольствие, но когда речь о продакшене для множества пользователей, есть пара вещей, которые стоит знать, чтобы избежать долгого отклика .

[Перевод] Лучшие практики и инструменты при разработке iOS приложений Разрабатывая мобильные приложения, мне не раз приходилось создавать проекты с нуля. При этом я и моя команда всегда тратили много времени на основную настройку проекта, такие как интеграция сторонних инструментов, настройка структуры проекта, написание базовых классов, интег.

Какие заголовки привлекают внимание чаще всего или анализ HabraHabr Здравствуйте, и снова появилось желание поделиться чем-то полезным! Статья о пользе домохозяйки не зашла на Хабр, по этому я выудил статью 4 летней давности написанную специально для habrhabr.ru для рекламы digital агентства, которое я уже закрыл. Надеюсь этот раз плюсов буд.

«Лаборатория Касперского» представила сервис для корпоративного обучения информационной безопасности Главная цель тренингов Kaspersky ASAP — не натаскать работников на какие-то схемы, а развить навыки и сформировать устойчивые привычки безопасного поведения, утверждают в компании. По данным «Лаборатории Касперского», 52% компаний мире считают наиболь.

[Перевод] Как сделать SFINAE изящным и надежным И снова здравствуйте. Делимся с вами интересной статьёй, перевод которой подготовлен специально для студентов курса «Разработчик C++». Сегодня у нас гостевой пост Адама Балаша (Ádám Balázs). Адам является инженером-программистом в Verizon Smart Communities Hungary и зани.

Фандрайзинг на аутсорсе: когда пора обращаться к консультанту Евгений Зубов консультирует НКО по вопросам маркетинга и продвижения. Он делится с сотрудниками некоммерческих организаций обучающими материалами и запустил агентство Mercy.Agency. Эксперт рассказал журналисту Теплицы Екатерине Ульяновой, когда стоит обращаться к консультан.

[Перевод — recovery mode ] Изображения с Хаббла показали возрождённую луну Нептуна Техника превращает каждое изображение с орбиты Хаббла в одну и ту же систему отсчета. По мере того, как зонды Voyager проходили через Солнечную систему, они собрали массивную запись открытий. Среди недавно обнаруженных объектов и явлений была большая коллекция маленьких лу.

Подборка @pythonetc, февраль 2020 Это девятая подборка советов про Python и программирование из моего авторского канала @pythonetc. Предыдущие подборки. Сравнение структур Иногда при тестировании бывает нужно сравнить сложные структуры, игнорируя некоторые значения. Обычно это можно сделать, сравнивая кон.

Близкие контакты ADL-ной степени Как навсегда вписать своё имя в историю? Первыми слетать на Луну? Первым встретиться с инопланетным разумом? У нас есть способ проще — можно вписать себя в стандарт языка C++. Хороший пример показывает Эрик Ниблер — автор C++ Ranges. «Запомните это. 19 февраля 2020 года — д.

Разработчики UserBenchmark попытались объяснить своё решение относительно пересмотра системы оценки CPU Несколько дней назад мы писали о том, что специалисты UserBenchmark пересмотрели систему оценки производительности процессоров, из-за чего четырёхъядерный Intel Core i3-8350K в этом тесте оказывается быстрее восьмидерного Ryzen 7 2700X. Или, к примеру, 120-долларовый Co.

Постоянное улучшение. 10 советов по организации самообслуживания Организация самообслуживания сотрудников компаний обычно рассматривается как ключевая инициатива для перегруженных ServiceDesk’ов ИТ-подразделений. Цели «классические»: снижение затрат, ускорение обработки запросов на обслуживание, обеспечение лучшего клиентс.

Web — javascript authentication, obfuscation и native code. Решение задач с r0от-мi —. Client. Часть 1 Данная статья содержит решений заданий, в которых рассматриваются аутентификация javascript, обфускация javascript и javascript native code. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьют.

Инженерный подход к разработке ПО Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Требования и спецификации — пережиток прошлого? Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндексе, до .

Habr Weekly #25 / Неформальные отношения в команде, сотрудники с аутизмом и критика Телеграма В этом выпуске: 02:10 Неформальные отношения в команде: зачем и как ими управлять, dsemenikhin 21:31 Каково это, когда 75% ваших сотрудников — аутисты, ITSumma 30:38 Бро vs. не бро, Nikitius_Ivanov 40:20 Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт.

Митап Нетологии «Карьера в Data Science для начинающих» Привет! 26 мая в Кампусе Нетологии (Москва) проведем митап «Карьера в Data Science для начинающих». С докладами выступят специалисты из 1С-Битрикс, Skyeng и наши коллеги из Нетологии. Поговорим о том, как построить карьеру в сфере Data Science, какие навыки нужны начинающему.

Создан бот для написания реалистичных комментариев за людей Разработчики создали алгоритм DeepCom, который на основе сотен «прочитанных» комментариев способен генерировать собственные. Причём они получаются очень похожими на написанные настоящими людьми.

Домен .ευ одобрен спустя десять лет бюрократических процедур ICANN приняла решение одобрить запуск доменной зоны .ευ, которая является греческим вариантом домена Евросоюза .EU. Путь домена к успешному старту длился более десяти лет. При этом эксперты считают, что .ευ будет самым бесполезным из всех национальных доменов.Заявление на ре.

[Из песочницы] Генератор мемов на Ruby для привлечения интереса к языку По моему мнению язык Ruby перестал быть популярным как в 2012 — 2014 году и поэтому у меня возникло желание пока про язык совсем не забыли, попробовать его снова донести в массы, ведь Ruby по моему мнению самый удобный и практичный язык для веб разработки. Я с неделю назад .

Football Drama — новый взгляд на жанр симулятора футбольного менеджера для iOS и Android Мы привыкли к тому, что игры о футболе бывают двух типов: спортивные симуляторы и симуляторы менеджера футбольного клуба. Но Football Drama — это кое-что новое. Это настоящая сатира на футбольную индустрию. Вам предстоит сыграть за менеджера с темным прошлым, которое будет .

«Перспектива» при поддержке «Пасеки» запустила портал по трудоустройству молодых людей с инвалидностью Команда региональной общественной организации «Перспектива» запустила сайт-портал по трудоустройству молодых людей с инвалидностью. Цель сайта – помочь молодым специалистам с инвалидностью найти работу и построить карьеру. Проект разработала команда Студии «Т».

[Перевод] Обход подводных камней Angular и экономия времени С помощью Angular можно сделать всё что угодно. Или почти всё. Но иногда это коварное «почти» приводит к тому, что разработчик губит время, создавая обходные решения, или пытаясь понять, почему что-то происходит, или почему что-то не работает так, как ожидается. Автор ста.

Илья Зверев:“За эти годы OpenStreetMap оброс такой серьезной инфраструктурой, что можно рисовать карту не выходя из дома Илья Зверев — неформальный лидер российского сообщества OpenStreetMap. Вот уже почти 10 лет он всячески продвигает OSM: создает новые приложения и пишет статьи, развивает сообщество и выступает на конференциях. Насколько дружелюбен OSM, что он делал два года в Совете OSMF и.

[Перевод] Совет от создателя RimWorld: когнитивные искажения при прогнозировании фана от игры (статья 2007 года) Чтобы разрабатывать игры, нам нужно оценить, будут ли они веселыми или нет. Учитывая описание игры, хорошо узнать, будет ли она работать, прежде чем мы ее создадим. Этот пост посвящен общему наивному методу, который часто используется для демонстрации не.

«Не так важны инструменты, как умение мыслить о системах, которые они создают». Большое интервью с Мартином Клеппманом Мартин Клеппман (Martin Kleppman) – исследователь в Кембриджском университете, работающий над CRDT и формальной верификацией алгоритмов. Его книга «Designing Data-Intensive Applications», опубликованная в 2020 году, стала бестселлером в области хранения и обработки данных.

Покорить Python и Pascal: как прошел чемпионат по кодингу «Код в мешке» – это новый, современный формат чемпионата по кодингу, который прошел в Кирове. 20 октября в нем приняли участие и новички, и опытные киберспортсмены. Ребята блестяще решали творческие задания и с интересом писали сложные программные коды. Самые юные участн.

Разработан физический язык программирования для невидящих и слабовидящих детей Code Jumper представляет собой набор блоковых модулей разных форм и проводов, соединяя которые в различные комбинации, дети могут создавать программы, способные рассказывать истории, писать музыку и даже придумывать шутки. Сами блоки покрашены в контрастные яркие цвета, чтоб.

На гребне волны, или «я хочу в мейнстрим» — а стоит ли? Помните резкий пик разработки и выпуска MOBA игр с момента выхода Dota 2, сколько было проектов? Сколько подобных игр делали в подобном жанре? ТысячиКто дожил до настоящего времени? единицы Наблюдаете за актуальностью роялей? Какой огромный пик начался с PUBG и Fortnite, .

E-Dobavki — веб-сервис поиска пищевых добавок на Java и Spring Boot, написанный моими студентами Введение Так получилось, что последние почти два года я преподаю программирование в одной из IT школ Киева. Занялся я этим Just For Fun. Когда-то я вел блог по программированию, потом забросил. Но желание рассказывать полезные вещи заинтересованным людям никуда не делось. Мо.

[Из песочницы] Что такое быть Team Leader Всем привет! Меня зовут Артур Дементьев, я бы хотел поделиться личным опытом и написать несколько статей о том, что из себя представляет менеджмент в IT. А также рассказать о том, на какие грабли наступал и каких ошибок можно было избежать. Все статьи я буду писать, основыва.

Разработан самый опасный искусственный интеллект в мире: что он умеет? Компания OpenAI, одним из основателей которой является Илон Маск, объявила о создании продвинутого искусственного интеллекта для написания оригинальных текстов на заданную тему. Предполагалось, что он будет переводить тексты на другие языки, отвечать на вопросы и выполнять .

[Перевод] Оптимизация поиска в ширину: как обработать граф с 10 миллиардами состояний Пару месяцев назад мне наконец пришлось признать, что я недостаточно умён, чтобы пройти некоторые уровни головоломки Snakebird. Единственным способом вернуть себе часть самоуважения было написание солвера. Так я мог бы притвориться, что создать программу для решения головол.

[Перевод] [в закладки] Bash для начинающих: 21 полезная команда Материал, перевод которого мы публикуем сегодня, предназначен для тех, кто хочет освоить командную строку Linux. Умение эффективно пользоваться этим инструментом позволяет экономить немало времени. В частности, речь здесь пойдёт о командной оболочке Bash и о 21 полезной кома.

[Перевод] Извлечение данных при машинном обучении Хотите узнать о трех методах получения данных для своего следующего проекта по ML? Тогда читайте перевод статьи Rebecca Vickery, опубликованной в блоге Towards Data Science на сайте Medium! Она будет интересна начинающим специалистам. Получение качественных данных — это пе.

Дизайн интерфейсов встраиваемых систем Осциллографы Встраиваемые и промышленные системы — моя любимая тема в разработке дизайна. Когда делаешь интерфейс ПО какого-нибудь лазера или яхты — это чистый кайф и творчество. На прошлой неделе я посетил выставки expoelectronica и embeddedday именно как UI разработчик. Ц.

[Из песочницы] Обширный обзор собеседований по Python. Советы и подсказки Всем привет! Кратко о себе. По образованию я математик, а вот по профессии — программист. В сфере разработки с 2006 года. Хотя, поскольку программирование начали изучать ещё в школе, свои первые программки и игры я начал писать ещё в школе (примерно, с 2003). Так сложилось, .

Шпаргалка по структурам данных в Go Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею. Но курсы по алгоритмам и структурам данных да.

Простые рецепты хороших юнит-тестов. Лекция Яндекса Если освоить небольшой список типичных ошибок, возникающих при написании юнит-тестов, можно полюбить писать их и стать гуру в своей команде. Руководитель санкт-петербургской группы разработки Яндекс.Браузера для Android Константин Заикин kzaikin рассказывает о подобных ошибк.

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

Четыре совета для продвижения сервисов электронной коммерции в сети Электронная коммерция — один из самых динамичных и конкурентных рынков. Выделиться на фоне других игроков и привлечь внимание пользователя становится всё сложнее. Эксперты myTarget подготовили несколько советов по продвижению площадок в .

Какой язык программирования лучше изучать? Советы специалиста Если вы по какой-либо причине захотели выучить язык программирования, но не знаете с какого стоит начать и каким продолжить, желательно обратиться за советом к профессионалу. Перед этим можно ознакомиться с базовыми рекомендациями от преподавателя FreeCodeCamp Квинси Ларсона.

[Перевод] Заложники COBOL и математика. Часть 2 Сегодня публикуем вторую часть перевода материала о математике, о COBOL, и о том, почему этот язык всё ещё жив. → Первая часть Читать дальше →

[Из песочницы] Как зеленый джуниор свой hot-reloader писал Предыстория Пару строк обо мне для общего понимания уровня автора и решаемой проблемы. Меня зовут Евгений и я веб-разработчик зеленый junior frontend developer. Еще какой-то год назад я работал в совершенно другой сфере и только в теории задумывался о смене профессии, но при.

[Из песочницы] План подготовки к собеседованию на позицию Java разработчика Каждый раз, готовясь к собеседованиям на позицию «Java разработчик», я понимаю, что мне бы очень помог конкретный план подготовки. Поэтому все свои записи, накопившиеся в ходе прохождения собеседований, было решено структурировать и опубликовать. Надеюсь, кому-то этот план б.

[Перевод] Дорожная карта Android-разработчика в 2020 году Всем привет! У нас отличные новости. В этом месяце в Отус стартует базовый курс «Android-разработчик», а также «Специализация Android-разработчик», которая включает в себя целый пакет курсов. В связи с этим делимся с вами полезной статьей, перевод которой приурочен к данным .

[Перевод] Применение автоматического машинного обучения к нейросетям с архитектурой «трансформер» Из блога Google AI С момента обнародования информации о них в 2020 году, нейросети архитектуры типа «трансформер» применялись к задачам различного толка, от генерирования текстов в стиле фэнтези до написания музыкальных гармоний. Что важно, высокое качество работы «трансфор.

[Перевод] Правильная типизация: недооцененный аспект чистого кода Здравствуйте, коллеги. Не так давно наше внимание привлекла почти готовая книга издательства Manning «Programming with types», подробно рассматривающая важность правильной типизации и ее роль при написании чистого и долговечного кода. При этом, в блоге автора мы обнаруж.

Как строить, развертывать и тестировать Waves RIDE dApp Здравствуйте! В статье я покажу, как написать и запустить на ноде Waves обычный dApp. Рассмотрим необходимые инструменты, методы и пример разработки. Схема разработки dApps и обычных приложений почти не отличается: Пишем код Пишем автоматизированное тестирование Запуска.

Ученые проверили, предусмотрена ли месть в людях природой Ученые из Бостонского университета решили лучше понять, как и когда развивается навык возвращения доброты к конкретному человеку. Для эксперимента решили провести анализ поведения маленьких детей в определенных условиях.

[Из песочницы] Не купитесь на ERP Вам наобещают золотые горы. Целый год будут мучить Ваших сотрудников. Потом сотрудники смирятся с этим беспределом. Золото превратится в грязь, а бабки будут отжимать постоянно. Историческая справка (если бы тогда я знал об этом — я бы не допустил столько ошибок в жизни).

Какой код нужно показывать на собеседовании Сегодня с утра был очень интересный пост о том, какой код нужно писать на собеседовании и какие навыки при этом демонстрировать. Тестовая задача была такая. Написать на TypeScript функцию, которая для заданного массива чисел выводит текстовую строку диапазонов: getRanges([.

Практическое применение трансформации AST-деревьев на примере Putout Введение Каждый день при работе над кодом, на пути к реализации полезного для пользователя функционала, становятся вынужденные (неизбежные, либо же просто желательные) изменения кода. Это может быть рефакторинг, обновление библиотеки или фреймворка до новой мажорной версии, .

Как подготовить сайт к большим нагрузкам: 5 практических советов и полезные инструменты Пользователи очень не любят, когда нужный им онлайн-ресурс «тормозит». Данные опросов говорят о том, что 57% пользователей покинут веб-страницу, если она грузится дольше трех секунд, при этом 47% готовы ждать лишь две секунды. Задержка в одну секунду может стоить 7% конвер.

10 навыков и знаний необходимых начинающему iOS разработчику Профессия iOS разработчик сейчас довольно востребована, хорошо оплачивается и, возможно даже, модная, а потому привлекает много людей. Ко мне и коллегам на собеседования приходит много кандидатов на открытые у нас вакансии, и я отчетливо вижу у многих новичков отсутствие.

Ethernet, FTP, Telnet, HTTP, Bluetooth — основы анализа трафика. Решение задач на сети с r0от-мi. Часть 1 В данной статье 5 первых заданий, узнаем основы анализа трафика различных сетевых протоколов. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказыват.

О жизни в мире меняющихся требований и пользе маленьких фич В МоемСкладе мы уже больше года создаем функционал, который помогает нашим пользователям покупать и продавать маркированные товары. Новость о маркировке уже много раз проскакивала на Хабре, так что кратко: с 2020 года товары маркируются обязательно. Не все и сразу, но уже се.

Замените Android на Windows. Разработчики призывают Microsoft изменить свой смартфон Surface Duo На своём недавнем мероприятии Microsoft неожиданно представила Surface Duo — складывающийся смартфон с двумя экранами, работающий под управлением Android. Позже мы узнали, что компания никогда не рассматривала для этого устройства никакую иную ОС, а о возрождении .

Учебный «Цех»: все что нужно знать взрослым про образование Онлайн-курсы не заменят полностью университеты. В этом уверена руководитель нового медиа об образовании для взрослых «Цех», которое будет запущено в сентябре 2020 года. Еще совсем недавно в России не было ресурсов, которые бы говорили с читателями на эту тему простым и поня.

[Перевод] composer и автодополнение командной строки Так как я все больше и больше добавляю свои скрипты в файлы composer.json, было бы полезно иметь автозаполнение для команды composer в bash. Мой вопрос в Твиттере не дал немедленного решения, и, поскольку я уже делал нечто подобное для Phing, я закатал рукава и написал своё .

Лучшая худшая работа в мире: ищем хабраавтора Какая работа может быть лучше, чем писать на Хабр о разработке? Пока кто-то готовит свой большой хабрапост урывками по вечерам, тут прямо в рабочее время делишься с сообществом интересными вещами и получаешь от него плюсы. Какая работа может быть хуже, чем писать на Хабр .

[Перевод — recovery mode ] Django 3.0 будет асинхронным Andrew Godwin опубликовал DEP 0009: Async-capable Django 9 мая, а 21 июля он был принят техническим советом Django, так что можно надеяться, что к выходу Django 3.0 успеют сделать что-нибудь интересное. Он уже упоминался где-то в комментариях Хабра, но я решил донести эту но.

Отдаю 2 сайта в хорошие руки Отдаю 2 сайта в хорошие руки. Причина — нет времени заниматься. Вот сами сайты: https://monastery-russia.ru https://kriptoarb.ru Про первый сайт я уже писал вот тут — https://blogarbik.ru/?p=9419 Про второй сайт — kriptoarb.ru В день капает около 150 ун.

Все смартфоны Nokia 8, наконец, обновили до Android 9.0 Pie Смартфоны Nokia, которые в течение последних пары лет очень успешно выпускает компания HMD Global, работают под управление чистой операционной системы Android без каких-либо графических оболочек. Производитель старается довольно оперативно выпускать обновления Android, .

Сможет ли когда-нибудь iPad заменить компьютер? iPad по праву считается лучшим планшетом. Не зря он уже стал именем нарицательным для целого класса устройств. Уже много лет Apple пытается доказать, что мы вошли в эру Post PC. То есть, если это действительно так, мы можем полностью отказаться от компьютеров и ничего от это.

Часть 5. Карьера программиста. Кризис. Middle. Первый релиз Продолжение рассказа «Карьера программиста». 2008-ой год. Глобальный экономический кризис. Казалось бы, при чем тут фрилансер-одиночка из глубокой провинции? Оказалось, что даже мелкий бизнес и стартапы на Западе, также обнищали. А это были мои непосредственные и потенциаль.

Отображение текста в Android Отображение текстовой информации — наверное, самая базовая и важная часть многих Android-приложений. В данной статье пойдет речь о TextView. Каждый разработчик, начиная с «Hello World», постоянно сталкивается с этим элементом пользовательского интерфейса. Периодически в раб.

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

Core Data в деталях Недавно я начала работать над большим проектом с использованием Core Data. Обычное дело, что люди на проектах меняются, опыт теряется, а нюансы забываются. Углубить всех в изучение конкретного фреймворка невозможно — у всех полно своих рабочих проблем. Поэтому я подготовила .

[Из песочницы] Кодогенерация при помощи Roslyn Время от времени, когда я читал о Roslyn и его анализаторах, у меня постоянно возникала мысль: «А ведь этой штукой можно сделать nuget, который будет ходить по коду и делать кодогенерацию». Быстрый поиск не показал ничего интересного, по этому было принято решение копать. Ка.

[Перевод] 9 полезных браузерных расширений для разработчиков (cписок на 2020 год) Как упростить себе жизнь при помощи браузерных плагинов. Хитрые веб-разработчики умеют пользоваться браузером на уровне «god-mode». Расширения(плагины, add-on) чрезвычайно полезны, когда речь идет об улучшении рабочей среды и повышении производительности написания кода. Не.

ФАС разработала Концепцию по обязательной предустановке российских приложений на смартфоны Федеральная антимонопольная служба России представила программный документ — Концепцию предустановки приложений на смартфоны в Российской Федерации. Концепция составлена по результатам обсуждения специалистов из Экспертного совета ФАС России по информационным технологиям, .

Как выбрать хорошую стиральную машину: советы ZOOM Ассортимент стиральных машин на современном рынке позволяет подобрать модель практически с любыми размерами и характеристиками. Однако этот же огромный выбор одновременно усложняет поиск подходящего варианта. Купить хорошую стиральную машину, подходящую для решения конкретны.

[Перевод] Анализ 112654 тестовых заданий и тренды рынка труда программистов 2020 года Материал, перевод которого мы публикуем сегодня, посвящён анализу рынка труда разработчиков программного обеспечения. А именно, компания Devskiller, которая работает в сфере рекрутинга, делится здесь результатом исследования 112654 тестовых заданий, которые выполнили програм.

38 функций в WhatsApp, о которых вы не знали (Часть 3) Мессенджеры, согласно некоторым данным, являются одним из самых популярных видов коммуникации между владельцами смартфонов. Некоторым пользователям приложений для обмена сообщениями вполне достаточно для того, чтобы общаться, почти не прибегая к услугам сотовых операторов. .

[Из песочницы] Рефакторинга много не бывает Привет, Хабр! Представляю вашему вниманию перевод статьи «Refactoring — oops, I’ve been doing it backwards» автора Джастина Фуллера (Justin Fuller). Я очень завишу от рефакторинга, и не боюсь признать это, но есть только одна проблема: я всегда делал это задом на.

SMARTlife: 9 вещей в Counter-Strike, которые помогут в реальной жизни Если вы можете называть себя хардкорным поклонником игры Counter Strike, то, скорее всего, вам уже будет не интересно читать изложенные ниже соображения на тему того, чего можно почерпнуть в этой командной игре.

Замените Android на Windows. Разработчики призывают Microsoft изменить свой смартфон Surface Duo На своём недавнем мероприятии Microsoft неожиданно представила Surface Duo — складывающийся смартфон с двумя экранами, работающий под управлением Android. Позже мы узнали, что компания никогда не рассматривала для этого устройства никакую иную ОС, а о возрождении.

От пул-реквеста до релиза. Доклад Яндекс.Такси В релизном цикле сервиса есть критически важный период — с момента, когда новая версия подготовлена, до момента, когда она становится доступна пользователям. Действия команды между этими двумя контрольными точками должны быть единообразны от релиза к релизу и, по возможности.

Python и FPGA. Тестирование В продолжение к первой статье, хочу на примере показать вариант работы с FPGA (ПЛИС) на python. В данной статье затрону подробнее аспект тестирования. Если фреймворк MyHDL позволяет людям, работающим на python, используя знакомый синтаксис и экосистему, заглянуть в мир FPGA.

[Из песочницы] Как самостоятельно имплементировать (Proof of Existence) за 2 шага Всем привет! Я работаю в компании, QuantNet, которая проводит конкурсы алгоритмических стратегий. В недавнем времени передо мной встала важная задача — обеспечить гарантии неприкосновенности даты юзеров (это чрезвычайно важно, так как для корректной проверки эффективностей с.

Disk forensics, memory forensics и log forensics. Volatility framework и Autopsy. Решение задач с r0от-мi. Часть 1 Данная статья содержит решений заданий, направленных на криминалистику памяти, оперативной памяти, и логов web-сервера. А также примеры использования программ Volatility Framework и Autopsy. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и ра.

[Перевод] Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 2 Сегодня публикуем вторую часть перевода материала, посвящённого статическому анализу больших объёмов серверного Python-кода в Instagram. → Первая часть Читать дальше →

[Перевод] Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 2 Сегодня публикуем вторую часть перевода материала, посвящённого статическому анализу больших объёмов серверного Python-кода в Instagram. → Первая часть Читать дальше →

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

[Перевод] Предварительная загрузка шрифтов Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о том, почему он выполняет предварительную загрузку шрифтов даже тогда, когда не должен этого делать. Когда он создавал тот сайт, на котором опубликован оригинал этого материала, он не собирался использова.

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

[Перевод] Возможности Python 3, достойные того, чтобы ими пользовались Многие программисты начали переходить со второй версии Python на третью из-за того, что уже довольно скоро поддержка Python 2 будет прекращена. Автор статьи, перевод которой мы публикуем, отмечает, что основной объём Python 3-кода, который ему доводилось видеть, выглядит как.

[Из песочницы] Лучшие практики React и советы, которые каждый разработчик должен знать. Часть 1 Привет, Хабр! Представляю вашему вниманию перевод статьи «React Best Practices & Tips Every React Developer Should Know Pt.1» автора Alex Devero. React — одна из самых популярных библиотек для построения интерактивных пользовательских интерфейсов. В этой статье я пока.

Курс по C++ в CS центре, первая часть Computer Science Center — это совместная инициатива Computer Science клуба при ПОМИ РАН, компании JetBrains и Школы анализа данных Яндекса. Центр существует, чтобы дать возможность талантливым студентам и выпускникам развиваться в интересных им направлениях: Computer Scienc.

Почему так сложно выбрать, какое кино посмотреть (и нейросети эту проблему не решат) Знакома ли вам ситуация: решили провести вечер дома и посмотреть какое-нибудь кино в хорошей компании, но, попытавшись определиться, какое — провели за выбором столько времени, что на кино его не осталось — или пропало желание — или, всё-таки, начали что-то смотреть, но наст.

Как свернуть видео из YouTube на Android Если вы открыли этот пост, значит, вам наверняка известно, что по умолчанию YouTube не позволяет воспроизводить видео в фоновом режиме на мобильных устройствах. Для этого нужно либо оформить премиум-подписку, чего многие делать категорически не хотят, либо воспользоваться в.

[Перевод] Parcel — мой любимый сборщик проектов Сегодня мы поговорим о сборщиках проектов (о бандлерах), об инструментах, которые облегчают жизнь разработчиков. Суть работы бандлеров заключается в том, что они берут JavaScript-код, содержащийся во множестве файлов, и упаковывают его в один или несколько файлов, определённ.

[Из песочницы] Amazon: 25 лет успеха на поприще электронной коммерции Привет, Хабр! Представляю вашему вниманию перевод статьи автора «AMAZON: 25 years of success in ecommerce». От гаража до самой дорогой компании мира Понедельник. Утро. Сиэтл. Новые сотрудники Amazon выстраиваются в очереди, чтобы пройти посвящение и пополнить ряды гиганта.

Мой путь от Python к Go — делюсь советами и ресурсами Мне нравится Python. Этот язык был моим фаворитом последние пять лет. Он дружелюбный, эффективный, и его легко выучить. Используется практически для всего: от создания простых скриптов и веб-разработки до визуализации данных и машинного обучения Постепенное «созревание».

[Перевод] Разбираемся в основах Blockchain: Задача Византийских Генералов. Часть 1 Перевод статьи подготовлен специально для студентов курса «Архитектор высоких нагрузок», который стартует уже в этом месяце. Блокчейн – это децентрализованная система, состоящая из различных субъектов, которые действуют в зависимости от своих стимулов и имеющейся у них ин.

Миф о кадровом голоде или основные правила формирования вакансий Довольно часто от работодателей можно услышать о таком явлении как «кадровый голод». Я считаю, что это миф, в реальном мире нет кадрового голода. Вместо него есть две реальные проблемы. Объективная – соотношение между количеством вакансий и количеством кандидатов на рынке тр.

20 вопросов, которые стоит задать IT-компании, прежде чем сменить работу Если бы меня попросили дать один универсальный совет всем, кто ищет работу в IT, я бы сказал: не стесняйтесь задавать побольше вопросов. Мало приятного в том, чтобы через месяц осознать, что новая компания/должность — совсем не то, что вы искали. А если это вакансия с релока.

Python потребляет много памяти или как уменьшить размер объектов? Проблема памяти может возникнуть, когда в процессе выполнения программы нужно иметь большое количество объектов, особенно если есть ограничения на общий размер доступной оперативной памяти. Ниже приводится обзор некоторых методов уменьшения размера объектов, которые позволяю.

[Перевод] Опять [про то, как стать умнее] Повторение как основа для созидания В наши дни многие дизайнеры разрабатывают «умные» вещи, которые обещают улучшить и укрепить наш разум, производительность и благополучие. Мне лично нравится смещать акцент с того, чтобы делать вещи вокруг нас умнее, на то, чтобы мы станов.

Готовы регистрировать свой смартфон и ноутбук? Скоро придётся Совет Федерации предлагает ввести обязательную регистрацию всех устройств, которые имеют доступ в сеть. Парк гаджетов получается достаточно обширный. Это не только смартфоны и планшеты, к которым мы давно привыкли, но ноутбуки, который с модулем 3G/4G становится всё больше.

C, C++ и DotNet decompile — основы реверса. Решение задач на реверсинг с r0от-мi. Часть 1 В данной статье 5 первых заданий, узнаем основы дизассемблирования, решим задачи начального уровня реверса, а также декомпилируем dotNet приложение. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и.

Школьники в Пензе напишут свой первый код Новички узнают, как пишут программы: дети 8–11 лет будут осваивать Scratch, а подростки 11–16 лет — Python. Ребята, уже знакомые с программированием, примут участие в соревновании по Scratch или Python — «IT-задачник». Участники будут соревноваться, кто найдет больше о.

Как выбрать прокси-сеть для бизнеса: 3 практических совета Изображение: Unsplash Маскирование IP-адреса с помощью прокси нужно не только для того, чтобы обходить цензуру в интернете и смотреть сериалы. В последние годы прокси все чаще используют для решения корпоративных задач от тестирования приложений под нагрузкой, до конкурен.

Подходы к сегментации мобильных игроков — перевод Алисса Перез из команды Google Play Dev написала статью, которую мы перевели. В ней много полезной информации о подходах к сегментации пользователей: юзер-таргетинге и его связи с развитием бизнеса. Основная цель каждой мобильной игры — создать для игроков что-то интерес.

Решение задания с pwnable.kr 04 — flag. Упакованные исполяемые файлы В данной статье разберем: как и для чего применяется упаковка исполняемых файлов, как их обнаружить и распаковать, и решим 4-е задание с сайта pwnable.kr. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информацио.

[Из песочницы] Формальная верификация на примере задачи о волке, козе и капусте На мой взгляд, в русскоязычном секторе интернета тематика формальной верификации освещена недостаточно, и особенно не хватает простых и наглядных примеров. Я приведу такой пример из зарубежного источника, и дополню собственным решением известной задачи о переправе волка, ко.

Как создать UI kit, который продается. Этапы разработки коммерческой дизайн-системы Сегодня у любого дизайнера есть возможность заработать на собственном дизайн-продукте. Иконки, иллюстрации, шаблоны сайтов и приложений можно превратить в цифровой продукт и продавать по всему миру. Кому-то ваша поделка поможет ускорить работу и человек за нее заплатит. Др.

Что такое Project Soli от Google и почему он переоценен Project Soli выглядит крайне перспективно, но… Если вы следите за миром мобильных технологий (а лучший способ это делать — быть подписанным на наш Телеграм-канал), то вы должны знать, что у компании Google есть масса наработок, которые они тестируют какое-то врем.

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

Универсальный пул У нас есть ArrayPool для переиспользования массивов. Работает это так: взяли массив определенной длинны что то с ним поделали и положили обратно. Нужно это для больших объектов которые по логике программы долго не должны храниться. В предыдущей статье описана эта проблема. .

Советы от инвестора: выбираем стартапы для инвестиций по их презентациям Меня зовут Александр Горный. Я сооснователь проекта United Investors. Это клуб бизнес-ангелов для совместных инвестиций в онлайн-проекты. Будучи администраторами, мы находим десятки и сотни стартапов, показываем их потенциальным инвесторам. Инвесторы самостоятельно принимают.

Как сделать качественное фото на документы (анкету, интернет-профиль) — 7 полезных советов Хотите сделать классную «официальную» фотографию? Такую, чтобы тот, кто её увидит, сразу же позвонил вам и взял на работу? Воспользуйтесь полезными советами от консультанта-специалиста по построению карьеры Барбары Пахтер. ПО ТЕМЕ: Какой была первая работа Дональда Трампа.

[Перевод] Как я получил работу с зарплатой 300 000 долларов в Кремниевой долине В конце января мы публиковали перевод на тему «Как я успешно прошел шесть собеседований в Кремниевой долине». Пришло время поделиться продолжением, где речь пойдет о более животрепещущей теме — о деньгах и о том, как получить больше. «В течение недели мне предложили должнос.

Просто и на C++. Основы Userver — фреймворка для написания асинхронных микросервисов В Яндекс.Такси придерживаются микросервисной архитектуры. С ростом количества микросервисов мы заметили, что разработчики много времени тратят на boilerplate и типичные проблемы, при этом решения не всегда получаются оптимальные. Мы решили сделать свой фреймворк, с C++17 и .

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

Kubernetes для автомобиля: как открыть разработчику доступ к бортовому компьютеру и сделать это безопасно Это история в двух частях — о новом витке развития automotive. Эта «серия» посвящена собственной разработке EPAM – Aos Connected Vehicle Platform. Алекс Агизим, CTO, Automotive & Embedded Systems, объясняет, чем она отличается от традиционного облачного решения и как дае.

ООП, «святая троица» и SOLID: некоторый минимум знаний о них Необходимое вступление Я не гарантирую, что изложенные здесь трактовки общепринятых терминов и принципов совпадают с тем, что изложили в солидных научных статьях калифорнийские профессора во второй половине прошлого века. Я не гарантирую, что мои трактовки полностью разделя.

Как сбежать из секты? Наш мир устроен очень странно. И чем дальше, тем становится страннее. И хрен поймешь, в чем дело. Вот есть на свете инженеры и программисты. Иногда в одном лице. Люди, понимающие, что такое алгоритм. Более того – люди, создающие эти алгоритмы. Прекрасно знающие, что созданн.

5 причин, почему на Android такие убогие приложения Приложений в Google Play больше, но они не приносят деньги Android обходит iOS по занимаемой доле рынка, а с недавнего времени обходит и по количеству приложений в виртуальном магазине. Но количество не всегда равно качеству — вы и сами можете в этом убедиться, если уй.

[Перевод] Асинхронное программирование – производительность async: понять расходы на async и await Это статья достаточно древняя, но не потерявшая актуальности. Когда разговор заходит об async/await, как правило, появляется ссылка на неё. Перевода на русский найти не смог, решил помочь кто не fluent. Асинхронное программирование долгое время было царством самых опытных р.

[Перевод] Путь к проверке типов 4 миллионов строк Python-кода. Часть 2 Сегодня публикуем вторую часть перевода материала о том, как в Dropbox организовывали контроль типов нескольких миллионов строк Python-кода. → Читать первую часть Читать дальше →

ControlValueAccessor и contenteditable в Angular Вы когда-нибудь задумывались, как работает связка форм Angular и HTML элементов, через которые пользователь заносит данные? С самого начала для этого использовали ControlValueAccessor — специальный интерфейс, состоящий всего из 4 методов: interface ControlValueAccessor < w.

Почему только прокачка кодинга не сделает из тебя лучшего разработчика Techlead Skyeng Кирилл Роговой выступает на конференциях с докладом, в котором рассказывает о навыках, развивать которые стоит каждому хорошему разработчику, чтобы стать лучшим. Я попросил его поделиться этой историей с читателями Хабры, передаю Кириллу слово. Миф про хорош.

11-летний испанский мальчик написал код для сотни видеоигр Антонио Гарсия Висенте выполняет задачи, которые перед ним ставят преподаватели, но не забывает и о Клубе юных программистов при Университете Вальядолида, где началась его «карьера». Как пишут Новости ИТ, Когда Антонио, родившемуся в Вальядолиде в 2007 году, было всего 6 лет.

Преимущества и особенности таргетинговой рекламы Не секрет, что сегодня без рекламы не обходится ни один бизнес. Абсолютно каждый владелец собственного дела, для его развития и возможности получения больших доходов, должен особенное внимание уделять рекламе. Современные технологии стараются предоставлять максимум современн.

[Перевод] Встречайте Codeception 3.0 Настало время воплотить в жизнь новую мажорную версию Codeception! За годы эволюции и постоянных улучшений мы многому научились, и сегодня представляем вам лучшую версию Codeception. Мы по-прежнему считаем, что простота тестирования важна: чтение, написание и отладка тестов .

В iOS есть серьезная «дыра», которую вы не замечали годами Высокоуровневая защита, которую пользователям iPhone обеспечивают алгоритмы шифрования и биометрические сканеры, меркнет на фоне – не побоюсь этого слова – уязвимости, годами существующей в iOS. Какой смысл говорить о безопасности Face ID, якобы ошибающегося один раз из мил.

[Перевод] Автоматические размеры хедера и футера UITableView с AutoLayout В этой статье я попытаюсь раскрыть некоторые причуды класса UITableView и покажу вам простой и самый простой способы реализовать представления верхнего и нижнего колонтитулов изменяемой высоты. Для меня простота, это когда дело доходит до написания кодом пользовательского .

[Перевод] Тренды программирования: чего можно ожидать в 2020 году? Как бы безумно это не звучало, но 2020 год наступит уже очень скоро. «2020 год» — это похоже на фразу из научно-фантастического романа. Но это не фантастика. Нас от этой даты отделяет всего несколько месяцев. Автор материала, перевод которого мы публикуем сегодня, говорит.

[Из песочницы] Справочник начинающего подкастера Эта статья — краткое руководство для тех, кто хочет запустить свой собственный подкаст. Когда я вместе с моим нынешним соведущим год назад запускал подкаст “В бесконечность и далее”, я не смог найти ни одной по-настоящему всеобъемлющей статьи. Поэтому я решил попытаться запо.

Робот Spot от Boston Dynamics покидает пределы лаборатории С июня этого года американская компания Boston Dynamics говорила о начале серийного производства роботов Spot. Теперь же стало известно, что робот-собака не поступит в свободную продажу, но для отдельных компаний разработчики готовы сделать исключение. Что касается области п.

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1 Данная статья содержит решений заданий Encoding ASCII и Encoding UU направленные на кодировки, Hash Message Digest 5 и Hash SHA-2 — на нахождение прообраза хеша, Shift cipher — шифр сдвига, и Pixel Madness — на составление картинки. Организационная информацияСпециально дл.

[Перевод] Big O Примечание. Сокращенный перевод, скорее пересказ своими словами. UPD: как отметили в комментариях, примеры не идеальны. Автор не ищет лучшее решение задачи, его цель объяснить сложность алгоритмов «на пальцах». Big O нотация нужна для описания сложности алгоритмов. Для этог.

Слёрм DevOps: от Git до SRE со всеми остановками 4-6 сентября в Санкт-Петербурге, в конференц-зале Selectel пройдет трехдневный Слёрм DevOps. Мы строили программу, исходя из мысли, что теоретические труды по DevOps, как и мануалы к инструментам, каждый может прочитать самостоятельно. Интересны только опыт и практика: расс.

Как я пытался починить поиск по картам для водителей. Часть 2 Первое, что хочется сказать — это было сложно. Гораздо сложнее, чем я думал. Я имел до этого весьма жесткий опыт выведения продуктов в релиз на работе, однако никогда не дотаскивал до продакшена персональные проекты. Они у меня все заканчивались на прототипах разной степени .

[Из песочницы] Git и командная разработка (для чайников) Введение Привет! Если ты сюда зашел, значит тебя заинтересовал вопрос, как программисты работают в команде. Если до этого ты работало только в соло, то тебе, наверно, кажется, что в команде работать проще, ведь больше рук и значит можно гораздо быстрее справиться с работой. .

[Перевод] 9 советов по созданию инди-игр от разработчика-одиночки Разработка игр в одиночку предоставляет удивительную свободу творчества и ставит невероятно сложные задачи. Любой, кто работал в соло над проектом (по собственному выбору или ещё по каким-либо причинам), знает как трудно сделать всю работу самостоятельно. Планировать всё и с.

Вывод Jira из состояния помойки, с чего начать Вдруг мы понимаем, что Jira превратилась в помойку. Каждый второй РП настраивал Jira как ему было удобнее бесконтрольно. А когда проект начал гореть, начал тушить пожары вручную, оставляя задачи в трекере в каком-то состоянии, далеком от завершения. Если в проекте создан пол.

Cron в Linux: история, использование и устройство Классик писал, что счастливые часов не наблюдают. В те дикие времена ещё не было ни программистов, ни Unix, но в наши дни программисты знают твёрдо: вместо них за временем проследит cron. Утилиты командной строки для меня одновременно слабость и рутина. sed, awk, wc, cut и .

Как увеличить видимость видеорекламы: советы от Google Ad Manager Команда Google Ad Manager поделилась с издателями советами о том, как улучшить видимость видеорекламы и повысить доходы. Так, в Google выделили следующие три фактора, с которыми важно работать владельцам сайтов и приложений: 1. Обеспечение премиум-опыта для пользователей Есл.

Что слышно в радиоэфире? Принимаем и декодируем наиболее интересные сигналы. Часть 2, УКВ Привет Хабр. В первой части были описаны некоторые сигналы, которые можно принять на длинных и коротких волнах. Не менее интересным является диапазон УКВ, на котором тоже можно найти кое-что интересное. Как и в первой части, будут рассмотрены те сигналы, которые можно са.

Основы движков JavaScript: общие формы и Inline кэширование. Часть 1 Привет, друзья. В конце апреля мы запускаем новый курс «Безопасность информационных систем». И уже сейчас хотим поделиться с вами переводом статьи, которая непременно будет очень полезной для курса. В статье описаны ключевые основы, они являются общими для всех движков Jav.

[Из песочницы] Тестирование локализации мобильных игр для чайников от чайника Введение Я уже полгода работаю тестеровщиком мобильных игр и хотел немного рассказать о своём самом любимом тестировании — Тестировании локализации. В этой статье я поделюсь своим опытом тестирования именно локализации, в основном будет опора именно на локализацию текста. Н.

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

Команда Firefox выпустила для своих пользователей менеджер паролей Lockbox Вчера, 26 марта, команда разработчиков браузера Firefox представила новый продукт под названием Firefox Lockbox — менеджер паролей для мобильный устройств. Согласно странице FAQ проекта, сейчас доступна только версия для iOS, но «в ближайшее время появится и вариант для ус.

[Перевод] История о V8, React и падении производительности. Часть 1 В материале, первую часть перевода которого мы публикуем сегодня, речь пойдёт о том, как JavaScript-движок V8 выбирает оптимальные способы представления различных JS-значений в памяти, и о том, как это влияет на внутренние механизмы V8, касающиеся работы с так называемыми фо.

Как мы заново изобретали IP АТС Askozia, после того как проект был продан и закрыт разработчиком Как было все прекрасно до часа X Мы — небольшая команда разработчиков, которая много лет назад занималась разработкой и внедрением программ 1С. В далеком 2011 году мы хорошо знали программные продукты 1С, и не имели опыта в разработке собственных решений. На тот момент компа.

[Перевод] Подумайте дважды, прежде чем использовать игровые движки Холивар о том, нужно ли использовать для создания игр движки, начался сразу после появления первых игровых движков. Этот пост на reddit не является идеальным примером разумных контраргументов против постоянного использования движков, но я считаю, что непреодолимое желание их.

[Из песочницы] DNS прокси на Node.JS своими руками Понесло пакет по кочкам в дальний лес за DNS… Л. Каганов «Гамлет на дне»При разработке сетевого приложения иногда возникает необходимость запустить его локально, но обращаться к нему по реальному доменному имени. Стандартное проверенное решение — прописать домен в .

Учёные объяснили, почему мы не заканчиваем блокноты и дневники Чтобы понять суть проблемы интернет-издание Vox обратилось к нескольким специалистам в области продуктивности, креативности и тайм-менеджмента. Профессор Джонатан Плюкер из Университета Джона Хопкинса считает, что все зависит от того, с какой целью мы приобретаем тетрадь, бл.

[Перевод] Предиктивная аналитика данных — моделирование и валидация Представляю вашему вниманию перевод главы из книги Hands-On Data Science with Anaconda «Предиктивная аналитика данных — моделирование и валидация» Наша основная цель в проведении различных анализов данных — это поиск шаблонов, чтобы предсказать, что может произойти в будуще.

[Перевод] Разработка надёжных Python-скриптов Python — это язык программирования, который отлично подходит для разработки самостоятельных скриптов. Для того чтобы добиться с помощью подобного скрипта желаемого результата, нужно написать несколько десятков или сотен строк кода. А после того, как дело сделано, можно прост.

[Перевод] Как подписывать приложения для macOS Catalina 10.15 [Прим. пер.: переведя вызвавший широкое обсуждение на Хабре пост, я заинтересовался новыми правилами для разработчиков ПО, введёнными компанией Apple. В этой статье рассказывается о личном опыте освоения правил одним из разработчиков игр.] Введение В новой версии macOS App.

[Из песочницы] Обучение разработчиков 1С-Битрикс: делимся нашим подходом к «выращиванию» кадров Когда кадровый голод становится невыносимым, digital-компании идут разными путями: кто-то под прикрытием «курсов» открывает собственную кузницу кадров, кто-то придумывает заманчивые условия и хантит специалистов у своих конкурентов. А что делать, если ни первое ни второе н.

[Перевод] История о V8, React и падении производительности. Часть 2 Сегодня мы публикуем вторую часть перевода материала, посвящённого внутренним механизмам V8 и расследованию проблемы с производительностью React. → Первая часть Читать дальше →

[Перевод] Бессерверная архитектура и микросервисы: идеальная пара? Перевод статьи подготовлен для студентов курса «DevOps практики и инструменты» в образовательном проекте OTUS. Когда в 2015 году начали появляться первые туториалы с использованием AWS Lambda и API Gateway, было неудивительно, что они в основном были сосредоточены на копир.

Исказитель будущего Роберт подошёл к двери. Обычная офисная дверь, без таблички, только с номером. По её внешнему виду невозможно догадаться, кто ждёт его внутри. Чуть помедлив, Роберт открыл дверь и вошёл. — Доктор Греттинг! Прошу, мы вас с нетерпением ждем, — произнёс человек в дорогом костю.

[recovery mode] В чем набрать и чем собрать C++ проект Задавшись этим вопросом я, в первую очередь, сформулировал требования: жесткие и опциональные (но желательные) для системы сборки и графической среды разработки. Сразу хочу отметить что речь идет о написании C++ кода не под какую-то специфичную платформу типа Android или фре.

Гайд по автоматическому аудиту смарт-контрактов. Часть 2: Slither Анализатор: Slither Описание: Open-source static analysis framework for Solidity githib: https://github.com/trailofbits/slither Это статический анализатор кода, написанный на python. Он умеет следить за переменными, вызовами, и детектирует вот такой список уязвимостей. У каж.

Операторы выступили против передачи радиочастот «Ростелекому» Как пишет «КоммерсантЪ» со ссылкой на РБК, соответствующее письмо операторы направили письмо вице-премьеру Максиму Акимову.22 октября состоится заседание Госкомиссии по радиочастотам, на котором «Ростелекому» должны выделить радиочастоты в 83 регионах. В .

Как решает типичные проблемы программист Google От переводчика: публикуем для вас перевод статьи Стива Меррита, сотрудника Google, который рассказывает о том, как он решает типичные проблемы программирования. Пост будет полезен, в первую очередь, начинающим программистам. В этой статье я расскажу о своей стратегии ре.

[Перевод] MVC без C: Что изменит SwiftUI в архитектуре приложений? MVC был давним стандартом в паттернах проектирования, используемых для написания iOS приложений. Структура iOS приложений, которые создавались ранее, была основана на одном базовом компоненте, который присутствует везде, и называется он — Controller. На WWDC19 был представле.

[Перевод] Опасности конструкторов Привет, Хабр! Представляю вашему вниманию перевод статьи «Perils of Constructors» автора Aleksey Kladov. Один из моих любимых постов из блогов о Rust — Things Rust Shipped Without авторства Graydon Hoare. Для меня отсутствие в языке любой фичи, способной выстрелить в ногу, о.

[Из песочницы] ВИЧ – методы лечения от первых лекарств до сегодняшнего дня Прежде, чем приступить к изложению материала, хотелось бы сказать несколько слов о себе: участник сообществ по борьбе с отрицанием ВИЧ („ВИЧ/СПИД диссидентством“): в 2020-2020 годах „ВИЧ/СПИД диссиденты и их дети“, с 2020 года – „ВИЧ/СПИД отрицание и альтернативная медицина“.

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

[Перевод] Удалённая разработка в VS Code: ваша жизнь никогда не будет прежней У нас в TestMace Visual Studio Code является одним из самых популярных инструментов. И тем более отрадно, что он развивается семимильными шагами. Вашему вниманию предлагается перевод статьи об еще одной вкусной фиче, которая доступна пока только в VS Code Insiders. Согласен.

[Перевод] Почему провалилась соцсеть Google+ Я присоединился к команде разработчиков Google Plus вскоре после появления этого проекта в 2010 году, перейдя из команды Blogger. Я участвовал в проекте три года, сначала поработав в команде разработки профилей, затем перейдя в отдел развития и привлечения пользователей (Gr.

Евгения Левенец: «Каждый сотрудник благотворительной организации немного фандрайзер» Индивидуальный фандрайзинг «Детских деревень – SOS» активно развивается последние 7 лет. С 2011 года перед организацией стояла задача выйти на самофинансирование к 2020 году. Эта цель была достигнута уже в 2020 году. Об опыте привлечения и удержания доноров рассказывала на м.

Мы agile или аджайл нас? Какая главная проблема в разработке программного обеспечения (а может и вообще в любой работе)? Когда я задавал вопрос коллегам, получал разные ответы: изменения требований, несоответствия ожиданий, качество кода, взаимодействие с другими командами… суммируя для себя — комму.

Андрей Дорожный: подборка инструментов для создания видео, отчетов и карт Когда необходимо визуализировать данные, важно понимать – это нужно, чтобы были кратко и понятно представлены какие-либо выводы. И на этом этапе важно сформулировать основные задачи и найти подходящие инструменты для их решения. Специально для Теплицы независимый дата-журна.

Использование асинхронного обмена сообщениями для улучшения доступности Привет, Хаброжители! Мы недавно сдали в типографию книгу Криса Ричардсона, цель которой — научить успешно разрабатывать приложения с использованием микросервисной архитектуры. В книге обсуждаются не только преимущества, но и недостатки микросервисов. Вы узнаете, в каких сит.

Где правда, а где мифы — говорим об уходе за кожей Женщины сталкиваются с множеством советов по уходу за собой, навязываемых модными журналами, рекламой и социальными сетями. Суждений до того много, что становится сложно разобраться: является ли очередной совет правдой. Читать полную статью

Волшебная фея для юнит-тестов: DSL в C# Как часто бывало так, что написав рабочий юнит-тест, ты смотришь на его код, а он… плохой? И ты такой думаешь: «Это же тест, оставлю так…». Нет, %username%, так оставлять не надо. Тесты — это значимая часть системы, которая обеспечивает поддерживаемость кода, и очень важно, .

[Перевод] Подробности о JavaScript-объектах Автор материала, перевод которого мы сегодня публикуем, говорит, что в JavaScript-объектах содержится много такого, о существовании чего можно и не подозревать, пользуясь ими в повседневной работе. Объекты в JavaScript очень легко создавать, с ними удобно работать, они кажут.

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

3D-напечатанные вспомогательные устройства и протезы: Blue Heart Hero Амин Хасани – один из дизайнеров группы Havenlabs. Havenlabs. Это некоммерческая организация, целью которой является использование 3D-печати для помощи ветеранам войны. Молодой человек делает все возможное, чтобы облегчить жизнь людей с ампутированными конечностями. Для этог.

Написание Unit тестов на Swift для проверки асинхронных задач Сегодня хочу вам быстренько рассказать как тестировать асинхронный код. Представьте ситуацию, что вам надо загрузить данные из интернета и проверить все ли работает нормально, либо еще какую-нибудь задачу, которая выполняется асинхронно. И как же его протестировать? Что если.

Мобильная разработка: от идеи до оценки стоимости Мобильных разработчиков часто спрашивают, сколько будет стоить реализовать ту или иную идею. Например, сделать аналог «Убер» или «Авито». При такой постановке вопроса трудно оценить предстоящие трудозатраты, что создает большой разброс цен у разных разработчиков и недовери.

Bloomberg: Apple собирается перевести Mac на ARM уже в следующем году Политика Apple предусматривает сохранение максимального контроля при создании своих устройств, что позволяет выпускать уникальные продукты и реже идти на компромиссы с партнёрами. Для своих мобильных устройств компания предоставляет не только операционную систему, но и больш.

Обязательную регистрацию по IMEI предлагают сделать платной В России давно обсуждается идея ввести обязательную регистрацию мобильных устройств по номеру IMEI. В базу собираются включить смартфоны, планшеты, ноутбуки, счётчики ЖКХ и все остальные устройства, которые поддерживают подключение к сотовой сети. По мнению властей, у базы I.

Лучше тот поисковик, что отражает объективность окружающего мира? Дальняя кривая меня привела к написанию этого поста. Перечитываю шедевральный труд про историю зарождения интернета, начиная с лейденской банки, в большей степени шедевральный конечно — с точки зрения усилий автора, но не умоляя и труда переводчика (тот же М. Лозинский с его.

Три причины растущей популярности DevOps Первые упоминания о DevOps появились где-то в 2010 году. Примерно с этого момента времени энтузиасты начали активно интересоваться новой темой. Если заглянуть в Google Trends, то можно увидеть вот такой график популярности термина «DevOps» за последние 5 лет: А .

[Из песочницы] Многорукий бог дедлайна или Широкое Использование Возможностей Аналитика Ни для кого не секрет, что аналитики — одна из самых свободно и многогранно трактуемых профессий. И, несмотря на наличие аж двух профессиональных стандартов, каждая компания индивидуально очерчивает круг задач, возлагаемых на специалиста, занимающего эту должность. В своей с.

Что делать, чтобы получать нормальные деньги и работать в комфортных условиях будучи программистом Этот пост вырос из комментария к одной статье здесь, на Хабре. Вполне обычного комментария, разве что сразу несколько человек сказали, что было бы очень хорошо оформить его в виде отдельного поста, а МойКруг даже не дожидаясь этого опубликовали этот самый комментарий отдельн.

[Из песочницы] Визуализация времени возрождения Рошана В данной статье рассматривается перехват функций графического API на примере DirectX 9 под x64 применительно к игре Dota 2. Будет подробно рассказано, как внедриться в процесс игры, как изменить поток выполнения, приведено краткое описание внедряемой логики. В конце поговор.

[Перевод] Как Artifact стал самым крупным провалом Valve Artifact представляет собой печальное зрелище. На момент написания статьи онлайн есть только 101 игрок, а максимум за 24 часа ненамного больше — 124 игрока. От Valve не было никаких новостей об игре с 29 мая, когда компания объявила, что разработчики «вместо выпуска обновле.

Анастасия Ложкина: «Фандрайзер – заноза в организации» Цифры, стрелки и витиеватые схемы – в офисе благотворительного фонда «Арифметика добра» в отделе фандрайзинга висят огромные листы бумаги, исписанные разноцветными фломастерами. Это фандрайзинговая стратегия по работе с частными лицами фонда. Руководитель отдела Ан.

Пишем Reverse socks5 proxy на powershell.Часть 1 История об исследовании и разработке в 3-х частях. Часть 1 — исследовательская. Буков много — пользы еще больше. Постановка задачи В ходе проведения пентестов и RedTeam кампаний не всегда удается воспользоваться штатными средствами Заказчиков, такими как VPN, RDP, Citrix и .

Темизация UI kit: как мы подружили SCSS с CSS Variables Всем привет, меня зовут Виталик, я senior фронтенд-разработчик Skyeng. Наша команда делает онлайн-платформу Vimbox для изучения английского языка. Примерно год назад мы с дизайнером доделали небольшой UI kit, искоренивший хаос в интерфейсе и кодовой базе. Оказалось, что в к.

Создан способ производства сверхпрочных металлов без ущерба их электропроводности Кусочек нового серебряного сплава в руках соавтора исследования Фредерика Сансоза Все металлы обладают дефектами структуры, которые в конечном итоге сказываются на их прочности – чем больше дефектов в металле, тем он более мягкий или ломкий. Для решения этой проблемы ученые .

Как я наводил порядок в проекте, где лес прямых рук (настройки tslint, prettier, etc) И снова здравствуйте. На связи Омельницкий Сергей. Сегодня я поделюсь с Вами одной из своих головных болей, а именно — что делать, когда проект пишут много разноуровневых программистов на примере angular приложения. Так повелось, что я долгое время работал только со своей к.

Как стать более востребованным специалистом в сфере Data Science в 2020 Заголовок этой статьи может показаться немного странным. И вправду: если вы работаете в сфере Data Science в 2020, вы уже востребованы. Спрос на специалистов в этой области неуклонно растет: на момент написания этой статьи, на LinkedIn размещено 144,527 вакансий с ключевым с.

Обзор SoloLearn. Учим азы программирования Практически каждый второй хочет стать программистом. Не потому, что любит заниматься этим делом или просто обожает буквы складывать в сложный код, а потому, что сейчас это одна из самых востребованных профессий. Программисты нужны как на заводах, так и в студиях, которые про.

[Перевод] Создание собственных синтаксических конструкций для JavaScript с использованием Babel. Часть 2 Сегодня мы публикуем вторую часть перевода материала о расширении синтаксиса JavaScript с использованием Babel. → Головокружительная первая часть Читать дальше →

Новое приложение от Microsoft помогает учить язык, используя камеру вашего смартфона Восемь стажеров из Microsoft разработали новый инструмент для изучения языка, который призван помочь людям разных возрастов выучить на нужном языке названия предметов из окружающего мира. Чтобы при помощи приложения, получившего название Read My World, выучить более 1500 сл.

[Перевод] Создание ритм-игры в Unity Введение Итак, вы хотите или пытались создать ритм-игру, но игровые элементы и музыка быстро рассинхронизировались, и теперь вы не знаете, что делать. Эта статья вам в этом поможет. Я играл в ритм-игры со старшей школы и часто зависал на DDR в местном зале аркадных автомато.

Кемеровские школьники станут веб-разработчиками Чем раньше подросток освоит навыки программирования, тем больше возможностей перед ним откроется. В рамках инициативы Meet and Code Центр развития «Эврика» поможет ребятам в Кемерово сделать первые шаги в карьере IT-специалиста. Опыт и знания в области программирования д.

Objectives and Key Results: инструкция по применению Всем привет! Меня зовут Егор, я руковожу кластером App Platform в Авито. Мои команды в основном занимаются разработкой внутренних продуктов, инструментов и процессов — тем, что принято называть платформенной разработкой. Год назад я рассказывал в этом блоге, как мы внедрили .

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 4. Модели, нормали и развертка Модели, нормали и развертка По моему скромному мнению, художник по текстурам должен отвечать за развертку. Не за саму развертку (ее стоит делать 3D-художникам или вообще отдельным UV-специалистам), а ее укладку. Он должен определять, как острова должны располагаться, как дол.

GHIDRA, исполняемые файлы Playstation 1, FLIRT-сигнатуры и PsyQ Привет всем, Не знаю как вам, а мне всегда хотелось пореверсить старые приставочные игры, имея в запасе ещё и декомпилятор. И вот, этот радостный момент в моей жизни настал — вышла GHIDRA. О том, что это такое, писать не буду, можно легко загуглить. И, отзывы настолько разн.

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

Существует ли эффект Даннинга-Крюгера? Многие слышали об этом эффекте. По легенде, менее компетентные люди склонны завышать собственную самооценку, в то время как более компетентные люди скорее будут её занижать. Соответственно, принимаемые решения могут быть неадекватны обстоятельствам по причине когнитивного и.

Четыре совета по написанию «чистого кода»

Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги — концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.

Книга «Чистый код. Создание, анализ и рефакторинг»

Поставьте оценку

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

В руководстве раскрываются правила написания кода, в ней много реальных рабочих образцов. Рассмотрены такие нюансы, как чистка кода. Читая ее, вы поймете основы того, как разработать и написать программный код.

Прочитав издание Роберта Мартина «Чистый код», вы освоите:

  • На чем основывается «правильный код»;
  • Методы улучшения «плохого кода»;
  • Почему в подготовке кода так важны мелочи;
  • Почему правильно написанный код, со временем «портится»?

В 3 блоках книги описаны приемы и методики верстки, рассмотрены практические схемы прогрессирующей сложности и представлен список экспериментальных правил.

Прочтя ее, сформируются профессиональные навыки по написанию рабочего, «чистого кода». Вы существенно ускорите работу своих проектов и станете ведущим экспертом компании.

Чистый код, Создание, анализ и рефакторинг, Мартин Р., 2020

Чистый код, Создание, анализ и рефакторинг, Мартин Р., 2020.

Плохой код может работать, но он будет мешать развитию проекта и компании-разработчика, требуя дополнительные ресурсы на поддержку и «укрощение».
Каким же должен быть код? Эта книга полна реальных примеров, позволяющих взглянуть на код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Вы узнаете много нового о коде. Более того, научитесь отличать хороший код от плохого, узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга состоит из трех частей. Сначала вы познакомитесь с принципами, паттернами и приемами написания чистого кода. Затем приступите к практическим сценариям с нарастающей сложностью — упражнениям но чистке кода или преобразованию проблемного кода в менее проблемный. И только после этого перейдете к самому важному — концентрированному выражению сути этой книги — набору эвристических правил и «запахов кода». Именно эта база знаний описывает путь мышления в процессе чтения, написания и чистки кода.

Да будет код.
Возможно, кто-то скажет, что книга о коде отстала от времени — код сейчас уже не так актуален; вместо него внимание следует направить на модели и требования. Нам даже доводилось слышать мнение, что код как таковой скоро перестанет существовать. Что скоро весь код будет генерироваться, а не писаться вручную. Что программисты станут попросту не нужны, потому что бизнесмены будут генерировать программы по спецификациям.

Ерунда! Код никогда не исчезнет, потому что код представляет подробности требований. На определенном уровне эти подробности невозможно игнорировать или абстрагировать; их приходится определять. А когда требования определяются настолько подробно, чтобы они могли быть выполнены компьютером, это и есть программирование. А их определение есть код.

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

Содержание.
Предисловие.
Введение.
Глава 1. Чистый код.
Глава 2. Содержательные имена (Тим Оттингер).
Глава 3. Функции.
Глава 4. Комментарии.
Глава 5. Форматирование.
Глава 6. Объекты и структуры данных.
Глава 7. Обработка ошибок (Майк Физерс).
Глава 8. Границы (Джеймс Гренинг).
Глава 9. Модульные тесты.
Глава 10. Классы (совместно с Джеффом Лангром).
Глава 11. Системы (Кевин Дин Уомплер).
Глава 12. Формирование архитектуры.
Глава 13. Многопоточность (Бретт Л. Шухерт).
Глава 14. Последовательное очищение.
Глава 15. Внутреннее строение JUnit.
Глава 16. Переработка SerialDate.
Глава 17. Запахи и эвристические правила.
Приложение А. Многопоточность II.
Приложение Б. org.jfree.date.SerialDate.
Приложение В. Перекрестные ссылки.
Эпилог.
Алфавитный указатель.

Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Чистый код, Создание, анализ и рефакторинг, Мартин Р., 2020 — fileskachat.com, быстрое и бесплатное скачивание.

Скачать файл № 1 — pdf
Скачать файл № 2 — epub
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу

Шесть советов по написанию более понятного программного кода

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

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

Другими словами, если я создаю беспорядок, то делаю это исключительно в своем собственном гнезде. Когда в три часа ночи я ищу ошибку в запутанной как страшный сон «макаронной» программе и говорю себе: «О господи, какое дебильное порождение близкородственного скрещивания написало этот кошмар?», ответ на этот вопрос может быть только один: «Это я сам».

Освоение хороших, упорядоченных методик программирования стало для меня настоящим благословением. Некоторые из таких методик описываются в данной статье. Многие умелые, опытные и внутренне дисциплинированные программисты знают многие из подобных методик назубок. Все, что такие люди смогут получить из данной статьи – это возможность насладиться моим восхитительным литературным стилем и вспомнить, насколько ужасна была их жизнь до того, как они приобщились к концепции «чистого кода».

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

Пример

В качестве иллюстрации в этой статье я буду рассматривать программу, представляющую собой гипотетическую компьютерную игру под названием Kill Bad Aliens (Убей плохого инопланетянина). Участник этой игры должен управлять космическим кораблем. Этот корабль перемещается по горизонтали в нижней части экрана и стреляет снарядами по вертикали. Управление этим космическим кораблем будет осуществляться, скажем, с помощью клавиатуры.

Рис. 1. Наша гипотетическая игра

Игра разбита на временные интервалы – так называемые «волны». На протяжении каждой волны в верхней части экрана один за другим появляются инопланетяне. Они летают по экрану и бросают бомбы. Инопланетяне появляются на экране в течение фиксированного промежутка времени. Волна заканчивается после того, как игрок уничтожил определенное количество инопланетян.

За каждого убитого инопланетянина игроку начисляется определенное количество баллов. После окончания каждой волны игрок получает определенное количество бонусных очков – в зависимости от того, насколько быстро он смог завершить данную волну.

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

Итак, вы садитесь за рабочий стол и начинаете писать программный код игры Kill Bad Aliens на языке C++. Сначала вы определяете объекты, которые будут представлять космический корабль, снаряды игрока, инопланетян и их бомбы. Затем вы пишете код для графического представления на экране всех указанных объектов. После этого вы пишете код для перемещения объектов по экрану в зависимости от времени. И, наконец, вы пишете игровую логику, искусственный интеллект инопланетян, программный код для ввода с клавиатуры команд игрока и т.д.

Возникает неизбежный вопрос – как сделать все перечисленное таким образом, чтобы программный код готовой игры был понятным, не создавал сложностей при последующем сопровождении и вообще не представлял собой неразборчивую путаницу?

Совет 1. Будьте благоразумны – пишите комментарии.

Комментируйте свой программный код. Обязательно. К примеру, вы написали процедуру и не сопроводили ее комментариями. Когда вы через несколько месяцев вернетесь к ней для доработки (а вам наверняка придется это сделать), отсутствие комментариев приведет к дополнительным потерям рабочего времени. Напоминаю, что время является самым ценным ресурсом. Потерянное время невозможно компенсировать.

Следует, однако, отметить, что написание комментариев – это тоже искусство. Для достижения мастерства в этом виде деятельности необходима практика. Комментарии бывают хорошие и плохие.

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

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

И, наконец, не следует писать глупых комментариев. Когда человек впервые приступает к написанию комментариев, он часто выпендривается и пишет что-либо вроде:

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

И уж если мы подошли к этому, еще одна рекомендация – никогда не делайте такого:

Ну и что? Мы закончили? Спасибо, что сообщили мне об этом. Эти квадратные скобки и фактически пустое пространство между ними не несут никакой полезной для меня информации. Кроме того, перед оператором возврата нет необходимости вставлять комментарии вида «Теперь мы возвращаем значение».

Итак, как комментировать свою программу, если вы пишете программный код в отсутствие указаний начальника или корпоративных правил? Что касается меня, то первое, что я делаю при написании программного кода, который мне придется поддерживать самому – пишу введение. Когда я возвращаюсь к созданной ранее процедуре, я уже давно забыл, о чем думал в момент ее написания, поэтому мне хочется понять, что эта процедура делает. После того как я пойму, что программа делает, становится значительно проще понять реальный программный код. В общем случае необходимы следующие комментарии:

  1. Несколько предложений в начале процедуры/функции, объясняющих, что она делает.
  2. Описание значений, передаваемых в эту процедуру/функцию.
  3. В случае функции — описание смысла возвращаемых параметров.
  4. Внутри процедуры/функции – комментарии, разбивающие программный код на короткие подзадачи.
  5. Для особо сложных фрагментов кода – краткое пояснение того, что происходит.

Итак, все, что нам необходимо – это описание в начале и несколько «указателей» внутри, поясняющих выбранный путь. Все это делается очень быстро и в длительной перспективе экономит массу времени.

Ниже приведен пример из нашей гипотетической игры Kill Bad Aliens. Рассмотрим объект, представляющий снаряды, которыми стреляет игрок. Вам придется часто вызывать функцию, которая будет перемещать этот объект вверх и определять, куда он попал. Я бы написал эту процедуру примерно так:

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

Совет 2. Используйте оператор #define чаще. КАК МОЖНО ЧАЩЕ.

Предположим, в нашей гипотетической игре мы хотим, чтобы при каждом попадании в инопланетянина игроку начислялось десять баллов. Эту задачу можно решить двумя способами. Плохой способ:

Хороший способ: В некотором глобальном файле напишите следующую строку:

Теперь, если захотим присвоить игроку несколько призовых баллов, достаточно написать следующее:

Большинство программистов так или иначе знают, что надо поступать именно так. Однако для последовательной реализации этой концепции необходима внутренняя дисциплина. Почти каждый раз, когда вы вводите числовую константу, надо тщательно обдумать – не задать ли ее в некотором «центральном пункте». Предположим, например, что вы хотите иметь игровую область с размерами 800 х 600 пикселов. Настоятельно рекомендую задавать размеры этой области следующим образом:

Если впоследствии вы решите изменить размеры игрового окна (а это весьма вероятно), то возможность централизованного изменения этих значений сэкономит вам время дважды. Во-первых, вам не придется просматривать весь свой код в поисках всех мест, где вы указали ширину экрана, равную 800 пикселам. («800 пикселов! И о чем я только думал?») Во-вторых, вам не придется исправлять неизбежные ошибки, связанные со ссылками, которые вы неминуемо пропустите.

При работе над игрой Kill Bad Aliens мне нужно решить, сколько инопланетян необходимо убить для завершения волны, сколько инопланетян может находиться на экране одновременно и как быстро инопланетяне появляются на экране. Например, если я захочу, чтобы каждая волна имела одинаковое число инопланетян, появляющихся с одинаковой частотой, я, скорее всего, напишу что-либо подобное:

Вполне понятный код. Затем, если я приду к выводу о том, что волны слишком коротки, или что промежутки между появлениями инопланетян слишком малы, я смогу изменить эти значения и мгновенно перенастроить всю игру.

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

Теперь достаточно одной перекомпиляции – и ваша игра станет значительно веселее и даже безумнее.

Рис. 2. Игра Kill Bad Aliens до изменения констант
Рис. 3. Игра Kill Bad Aliens после увеличения всех констант (играть, может быть, трудновато, но посмотреть интересно)

Между прочим, вы обратили внимание, что для указанных выше значений я не писал никаких-либо комментариев. Это объясняется тем, что их смысл очевиден из имен переменных. Это естественным образом приводит нас к следующему важному совету.

Совет 3. Не давайте переменным имена, способные ввести в заблуждение.

Конечная цель проста: написать программный код таким образом, чтобы посторонний человек, не имеющий представления о том, что этот код делает, мог понять его как можно быстрее.

Один из основных способов достижения этой цели состоит в том, чтобы давать переменным, процедурам и т.д. хорошие, т.н. «говорящие» имена. Если упомянутый выше гипотетический читатель вашего кода, посмотрев на имя переменной, подумает: «Ага, я понимаю, что это такое», это сэкономит ему пять минут – ему не придется просматривать вашу программу на предмет объяснений, что, в конце концов, по мысли автора должно означать имя incremeter_side_blerfm .

При этом необходимо соблюдать золотую середину. Давайте своим объектам имена, достаточно длинные и наглядные для понимания их смысла, однако не настолько длинные и громоздкие, чтобы это затрудняло чтение программного кода.

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

я, скорее всего, написал бы следующее:

Любое недоразумение, обусловленное более коротким именем, будет устранено очень быстро, а «читаемость» кода улучшится.

Теперь рассмотрим фрагмент кода, который будет использоваться очень часто для перемещения всех инопланетян по экрану. Я почти наверняка написал бы это так:

Обратите внимание, что массив для всех инопланетян так и называется – aliens . И это очень хорошо. Данное имя передает именно то, что я хотел сказать, однако при этом оно достаточно короткое, чтобы я мог ввести его с клавиатуры тысячи раз и не сойти при этом с ума. По всей вероятности, вы будете использовать этот массив ОЧЕНЬ ЧАСТО. Если вы назовете этот массив all_aliens_currently_on_screen , ваш программный код станет на десять миль длиннее и настолько же непонятнее.

Кроме того, параметру цикла я без каких-либо дополнительных комментариев дал простое имя i . Если вы только начали осваивать стратегию описательного именования переменных, у вас может возникнуть искушение дать этой переменной «говорящее» имя counter (счетчик) или что-то вроде этого. Это совсем не обязательно. Цель именования переменной состоит в том, чтобы немедленно вызвать у читателя реакцию: «Ага, я знаю, что это значит». Если я дам этой переменной имя i, j и т.д., любой читатель сразу поймет, что это параметр цикла. Каких-либо дополнительных разъяснений не требуется.

Несомненно, к именованию переменных можно относиться гораздо серьезнее. Например, существует т.н. венгерская нотация. Эта концепция имеет множество вариантов, однако ее основная идея состоит в том, что каждое имя переменной должно начинаться с префикса, указывающего на тип этой переменной. (Например, все переменные типа unsigned long variable должны начинаться с префикса ul и т.д.). На мой взгляд, это уже перебор, однако вам надо знать о существовании и такого варианта. Можно потратить достаточно много времени на то, чтобы сделать вещи понятнее, однако решение этой задачи также требует определенных усилий.

Совет 4. Проверяйте свою программу на наличие ошибок. Вы ведь делаете ошибки. Да-да, именно вы.

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

При создании любой процедуры/функции всегда нужно задаваться вопросом: «Предположим, некий невменяемый злодей передаст в нее самые неподходящие значения. Как этот мягкий и пушистый кусочек кода сможет защитить себя и сохранить всю программу от повреждения?» Затем напишите свой код так, чтобы он проверял эту процедуру/функцию на наличие таких враждебных данных и защищался от них.

Рассмотрим следующий пример. Основная задача нашей замечательной космической игры состоит в том, чтобы убивать инопланетян и набирать баллы, поэтому нам необходима процедура для изменения набранных игроком баллов. Более того, при добавлении игроку баллов мы хотели бы вызывать процедуру, которая расцвечивала бы итоговый счет красивыми искорками. Первый вариант выглядит следующим образом:

Пока все идет нормально. Теперь задайте себе вопрос: «Что в этом коде может быть не так?»

Во-первых, один очевидный момент. Что произойдет, если переменная num_points будет иметь отрицательное значение? Можем ли мы допустить, чтобы счет игрока снижался? Возможно. Однако в описании игры я до этого нигде не упоминал о возможности потери игроком баллов. Кроме того, игры должны приносить удовольствие, а потеря баллов этому противоречит. Таким образом, мы приходим к выводу, что отрицательное число очков – это ошибка, которую необходимо поймать.

Этот пример был достаточно простым. Существует и менее очевидная проблема (с которой я постоянно сталкиваюсь в своих играх). Что произойдет, если переменная num_points будет равна нулю?

Это весьма правдоподобная ситуация. Не забудьте, что по окончании каждой волны мы даем игроку бонусные баллы в зависимости от скорости ее прохождения. Что произойдет, если игрок будет действовать слишком медленно и мы решим дать ему 0 баллов? Вполне вероятно, что, работая над своим кодом в 3 часа ночи, вы решите вызвать процедуру change_score и передать ей значение 0.

В данном случае проблема состоит в том, что мы, скорее всего, не захотим расцвечивать итоговый счет праздничными цветами, если количество баллов не изменилось. Таким образом, эту ситуацию также необходимо выявлять. Давайте попробуем такой код:

Ну вот. Так гораздо лучше.

Обратите внимание, что это была очень простая функция. В ней совершенно отсутствуют всякие новомодные указатели, которые так любят использовать молодые лихие программисты. Если вы передаете массивы или указатели, вам ОБЯЗАТЕЛЬНО нужно предусмотреть выявление ошибок или плохих данных.

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

Этот подход экономит массу времени и заслуживает регулярного применения. Время – наш самый ценный ресурс.

Совет 5. «Преждевременная оптимизация – корень всех зол», – Дональд Кнут (Donald Knuth).

Эту фразу придумал не я. Однако она есть в Википедии, и поэтому, по всей видимости, не лишена смысла.

Если ваша конечная цель не состоит в том, чтобы мучить людей, то при написании программного кода следует стремиться к максимальной понятности. Простой код требует меньше времени на написание, на понимание при последующем обращении к нему и на отладку.

Оптимизация – враг ясности. Следует, однако, отметить, что в некоторых случаях оптимизация необходима. Это особенно справедливо для игр. Однако – и это очень важно – почти никогда не известно заранее, что именно необходимо оптимизировать, до тех пор, пока вы не протестируете реально функционирующий код с помощью инструмента под названием профайлер. (Профайлер – это программа, которая наблюдает за вашей программой и оценивает время, затрачиваемое на выполнение отдельных вызовов. Существуют замечательные программы этого типа. Найдите и пользуйтесь.)

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

Соблюдать это правило непросто. С другой стороны, иначе оно не было бы правилом. «Хороших» программистов неуклюжий код раздражает, даже если он работает быстрее.

Однако возрадуйтесь! После моих долгих проповедей о том, что вы должны тратить больше времени на то и больше времени на это, наступил редкий, поистине бесценный момент, когда я говорю вам, что небольшая лень вполне допустима!

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

И, наконец, раз уж мы заговорили о болезненном, вот мой завершающий совет:

Совет 6. Не умничайте.

Возможно, вы слышали о существовании мероприятия под названием International Obfuscated C Code Contest – международного конкурса по самому запутанному программному коду на языке C. Все дело в том, что языки C и C++, при всех своих преимуществах, позволяют создавать кошмарно запутанный код. Этот конкурс демонстрирует преимущества понятного кода «от противного» – посредством награждения самых безумных программистов. Отличная идея.

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

Основной урок состоит в следующем. Если создаваемый код требует от вас детального знания замысловатых правил приоритета или заставляет вас заглядывать в последние главы какой-либо книги, чтобы понять, что именно вы делаете – это означает, что вы начали умничать.

Каждый программист имеет свой допустимый уровень сложности создаваемого кода. Лично я пишу свои программы так, как водит машину типичная бабушка. На мой взгляд, если ваш код на C требует понимания тонких различий между выражениями i++ и ++i, то он слишком сложен.

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

Заключение

Возможно, дочитав до этого места, вы думаете: «И это все? Только зря потратил время. Это же очевидно и всем известно. Зачем автор все это писал?» Очень надеюсь, что вы думаете именно так. Значит, вы уже сами все знаете. Очень рад за вас.

Однако не надо думать, что все изложенное очевидно каждому. На самом деле это не так. Плохо написанный программный код появляется снова и снова – хотя без этого можно было бы обойтись.

Если вы имеете дело с огромными объемами программного кода и не хотите погибнуть под его грузом, я искренне надеюсь, что мои советы вам помогут. Стремитесь к простоте и ясности – это сбережет вам массу времени и избавит от ненужных страданий.

Ресурсы для скачивания

Похожие темы

  • Оригинал статьи Six ways to write more comprehensible code: How to keep your code from destroying you.
  • Различные варианты венгерской нотацииописаны в Википедии.
  • Обратите внимание на профайлеры, перечисленные в Википедии. Как правило, для каждой среды разработки требуется свой профайлер. Изучение документации по вашей среде разработки поможет найти подходящий вариант.
  • Если вы любитель неподдерживаемого программного кода, рекомендую ознакомиться с победителями конкурса International Obfuscated C Code Contest.
  • Рекомендую также ознакомиться с другими советами по написанию удобного для поддержки программного кода: 9 советов от Брэма Кохена (Bram Cohen) (how to write maintainable code), 6 советов от Шона Келли (Sean Kelly) (more maintainable code) и 12 советов от Джоэла Сполски (Joel Spolsky) (12 steps to better code).
  • Примерно 100 иронических антисоветовв прекрасной работе Руди Грина (Roedy Green) «Как написать неподдерживаемый программный код» (юмористическая статья).
  • Ознакомьтесь с играми от автора статьи, и вы увидите его мудрость в ее реальном воплощении.
  • Ознакомьтесь с избранными работами автора, включая юмористические заметки, статьи по компьютерным играм и различные технические материалы.
  • В разделе Linux сайта developerWorks можно найти дополнительные ресурсы для Linux-разработчиков, включая руководства по Linux, а также самые популярные среди наших читателей статьи и руководства по Linux за последний месяц.
  • Используйте ознакомительные версии программных продуктов IBM, которые можно загрузить непосредственно с сайта developerWorks, в своем следующем проекте по разработке для Linux.

Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

10 правил написания чистого кода

У каждой профессии есть целый набор своих специфических проблем. В частности одной из самых распространённых проблем является ситуация, когда один человек напрочь отказывается делать то, что до него делал другой. Проблема заключается в том, что у всех разные подходы к работе, что очень часто приводит к тому, что они превращаются просто во вредные привычки.

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

Пишем красивый и чистый программный код

1. Тщательно продумайте логику, перед тем как начать кодить

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

2. Чётко обозначьте для себя структуру вашей страницы

Работать с определёнными контейнерами очень удобно, но ещё более удобно работать с контейнерами, у которых есть определённые ID. Предположим, что мы имеем дело со следующим фрагментом кода:

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

3. Используйте понятные идентификаторы

Для того чтобы пример рассмотренной вами структуры был понятен почти каждому после нескольких секунд, необходимо давать ясные имена идентификаторов. Также необходимо принимать во внимание форматирование, которое также играет важную роль в читабельности кода. Согласитесь, что это не очень сложно! Однако данные техники помогут вам, и не раз.

4. Пишите краткие и понятные комментарии

Комментарии — это очень важная часть программной документации, которую необходимо писать, для того чтобы быстро и безболезненно ориентироваться в коде. Простой и краткий комментарий это как раз то, что вам нужно, для того чтобы увеличить понимание того, что следует за ним.

Многие разработчики не любят писать комментарии. Это вполне можно понять, однако часто это просто необходимо, потому что всё чаще и чаще масштабы и количество проектов увеличивается и всё поместиться в голове не может. Но тут есть и обратная сторона медали, но об этом в следующем пункте.

5. Используйте комментарии без фанатизма

Использование комментариев не должно выходить за рамки. Когда вы пишите комментарий, то должны просто описать входящие и возвращаемые данные. Комментарии следующего вида неприемлимы:

  • Написание комментариев для себя (пример: /* Закончу как-нибудь потом. */).
  • Отвод глаз от себя (пример: /* это писал Johns.С него и спрос. */).
  • Ни о чём не говорящие выражения (e.g. /* Это очередная математическая функция. */).
  • Также иногда люди не уверены в какой-то функциональности и просто комментируют фрагмент кода.

Данные комментарии бессмыслены и могут ввести человека в заблуждение. У каждого комментария должен быть свой смысл. Никогда не забывайте об этом

Примеры хороших комментариев:

  • Спецификация автора (пример: /* Автор John, 13 Ноября 2010 */).
  • Какая-то детализация метода или процедуры (пример: /* Данный метод предназначен для валидации формы входа пользователя в систему */).
  • Быстрые заметки или описание изменений в коде (e.g. /* Добавлена валидация e-mail */).

6. Не пишите слишком большие методы

Когда функциональность того или иного метода расширяется, неизбежно растёт и размер самого метода. Количество строк кода постоянно увеличивается, и метод меняет свой вид, что может в последствии запутать автора.

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

7. Используйте стандарты именования переменных и функций

Когда вы начинаете писать функцию или создаёте новую переменную, её имя должно иметь описательный характер. Разработчик с первого взгляда должен понять, для чего она нужна.

Существует немало компаний, в которых узаконены свои собственные стандарты именования методов и переменных (пример: префикс ‘int_’ для всех переменных данного типа), но также наравне с ними существует масса компаний где вообще нет никаких стандартов. Из-за своей лени работники данных компаний часто делают одну и ту же работу вдвое дольше. Как вы думаете? Это нормально?

8. Осторожно производите все изменения

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

Так же необходимо учитывать следующее:

  • Сохраняйте код читабельным (пример: если вы добавляете условный оператор IF, то обратите внимание на форматирование кода).
  • Создавайте дополнительные комменты.
  • Уважайте стандарты, согласно которым был написан данный метод.

9. Избегайте бурных смесей различных языков программирования

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

10. Ограничивайте импорт файлов

Это конечно хорошо, когда функциональность разбита на несколько файлов, но тут всё тоже должно быть в меру. Если у вас есть несколько файлов с таблицами стилей их можно и даже нужно объединить в один.

Это сэкономит место и позволит сохранить порядок в проекте, к тому же уменьшит время загрузки страницы. Каждый импорт файла это отдельный HTTP запрос, который занимает определённое время загрузки вашего приложения.

Время действовать

Я согласен с тем, что выполнять все эти правила не всегда удобно, однако это может помочь вам в будущем. К тому же вы здорово сможете увеличить эффективность написания кода. К тому же, всё чаще и чаще люди убеждаются в том, что необходимо идти в ногу со стандартами, для того чтобы сохранить код читабельным. Учитывая, что не всегда один и тот же человек работает над одним и тем же фрагментом кода, эти правила очень важны. Всё это — залог успеха работы в команде.

Чистый код. Создание, анализ и рефакторинг

  • 32472
  • 2
  • 7

Скачать книгу в формате:

Аннотация

Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги — концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.

Отзывы

М_арфа

А книга то где? 404 NOT FOUND&

Albert

М_арфа, «читать онлайн» выбери

Недоброжелатель

Какого она, ***, года.

Тимофейка

Варфалавей Ибн.

Кныга харошь, многа буква, училь, телефон вклучыль, спасыба!

Roman S.

ХОРОШАЯ КНИГА , СПАСИБО

Читатель

ХОРОШАЯ КНИГА , СПАСИБО ВАМ

Популярные книги

  • 40047
  • 5

Нелл Харпер Ли УБИТЬ ПЕРЕСМЕШНИКА Юристы, наверно, тоже когда-то были детьми. Чарлз Лэм ЧАСТЬ П.

Убить пересмешника

  • 155692
  • 46
  • 21

Вы сможете рисовать через 30 дней

  • 29125
  • 6
  • 1

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

Кто заплачет, когда ты умрешь?

  • 39199
  • 1

Автор этой книги отбросил скучные детали и статистику и предлагает читателю занимательные уроки .

Психология. Люди, концепции, эксперименты

  • 68174
  • 3
  • 13

Третья часть из цикла книг Ренсома Риггза, «Дом странных детей». Джейкоб, Эмма и пес Эддисон отправл.

Библиотека душ(ЛП)

  • 31464
  • 3
  • 1

Когда жизнь преподносит нам «сюрприз» в виде болезненных, невыносимых, запутанных ситуаций, мы вп.

Исповедь бывшей любовницы. От неправильной любви – к настоящей

Дорогие читатели, есть книги интересные, а есть — очень интересные. К какому разряду отнести «Чистый код. Создание, анализ и рефакторинг» Мартин Роберт решать Вам! Это настоящее явление в литературе, которое не любишь, а восхищаешься всем естеством, оно не нравится, а приводит в неописуемый восторг. С помощью описания событий с разных сторон, множества точек зрения, автор постепенно развивает сюжет, что в свою очередь увлекает читателя не позволяя скучать. Кто способен читать между строк, может уловить, что важное в своем непосредственном проявлении становится собственной противоположностью. Все образы и элементы столь филигранно вписаны в сюжет, что до последней страницы «видишь» происходящее своими глазами. Динамичный и живой язык повествования с невероятной скоростью приводит финалу и удивляет непредсказуемой развязкой. Обращает на себя внимание то, насколько текст легко рифмуется с современностью и не имеет оттенков прошлого или будущего, ведь он актуален во все времена. Значительное внимание уделяется месту происходящих событий, что придает красочности и реалистичности происходящего. В ходе истории наблюдается заметное внутреннее изменение главного героя, от импульсивности и эмоциональности в сторону взвешенности и рассудительности. В рассказе присутствует тонка психология, отличная идея и весьма нестандартная, невероятная ситуация. Казалось бы, столь частые отвлеченные сцены, можно было бы исключить из текста, однако без них, остроумные замечания не были бы столь уместными и сатирическими. «Чистый код. Создание, анализ и рефакторинг» Мартин Роберт читать бесплатно онлайн будет интересно не всем, но истинные фаны этого стиля останутся вполне довольны.

  • Понравилось: 0
  • В библиотеках: 2
  • 32472
  • 2
  • 7

Новинки

Нежить и перерожденные, связанные мирным договором, ищут повода, что бы вцепиться друг другу в гор.

Мастер Йода рекомендует:  Удобный и безопасный поиск на сайте PHP
Добавить комментарий
Поставьте оценку