UX тренды в 2020 году
Виртуальная и дополненная реальность, голосовые интерфейсы - все, о чем мы так наслышаны, развивается настолько быстро, что мы даже не замечаем, как это проникает в нашу повседневную жизнь.
С каждым годом аппаратное и программное обеспечение становится более доступным для компаний и команд, занимающихся UX разработкой. Что нас ждет в 2020 году, расскажет данная статья.
Читать статью
#analysis #trends
Виртуальная и дополненная реальность, голосовые интерфейсы - все, о чем мы так наслышаны, развивается настолько быстро, что мы даже не замечаем, как это проникает в нашу повседневную жизнь.
С каждым годом аппаратное и программное обеспечение становится более доступным для компаний и команд, занимающихся UX разработкой. Что нас ждет в 2020 году, расскажет данная статья.
Читать статью
#analysis #trends
Что в имени тебе моём...
Хорошее имя – это очень важно. Держать в голове информацию о программе и так трудно, поэтому не нужно создавать лишние трудности сложными системами наименований или туманными ссылками. Учитесь давать объектам прозрачные имена – они должны ясно описывать то, что за ними скрывается.
Думайте не только об именах переменных и функций, но и об общепринятых правилах именования типов(классов), пространства имен, макросов и даже файлов исходного кода. В случае если найти единственно верный свод правил именования затруднительно, выработайте единый стиль и придерживайтесь его.
Когда я употребляю слово, – сказал Шалтай-Болтай довольно презрительно, – оно означает только то, что мне от него требуется, – не больше и не меньше.
#tips #name
Хорошее имя – это очень важно. Держать в голове информацию о программе и так трудно, поэтому не нужно создавать лишние трудности сложными системами наименований или туманными ссылками. Учитесь давать объектам прозрачные имена – они должны ясно описывать то, что за ними скрывается.
Думайте не только об именах переменных и функций, но и об общепринятых правилах именования типов(классов), пространства имен, макросов и даже файлов исходного кода. В случае если найти единственно верный свод правил именования затруднительно, выработайте единый стиль и придерживайтесь его.
Когда я употребляю слово, – сказал Шалтай-Болтай довольно презрительно, – оно означает только то, что мне от него требуется, – не больше и не меньше.
#tips #name
CodeFactor
CodeFactor позволяет вести статистику качества кода каждого коммита в репозитории проекта. Таким образом, каждый член команды получает действенную обратную связь, советы по рефакторингу. CodeFactor поддерживает Bash, C, C#, C++, Java, JS и многие другие языки.
Из полезных инструментов выделим автофикс определенных проблем по запросу или автоматически, анализ любой ветки и их переключение на лету, отслеживание всей кодовой базы и понимание её узких и слабых мест, интеграция со slack проекта. Управляйте качеством и станьте великой командой, а CodeFactor в этом верный помощник.
GitHub
#tools #code_analyzer
CodeFactor позволяет вести статистику качества кода каждого коммита в репозитории проекта. Таким образом, каждый член команды получает действенную обратную связь, советы по рефакторингу. CodeFactor поддерживает Bash, C, C#, C++, Java, JS и многие другие языки.
Из полезных инструментов выделим автофикс определенных проблем по запросу или автоматически, анализ любой ветки и их переключение на лету, отслеживание всей кодовой базы и понимание её узких и слабых мест, интеграция со slack проекта. Управляйте качеством и станьте великой командой, а CodeFactor в этом верный помощник.
GitHub
#tools #code_analyzer
Когда использовать абстрактные классы
Внедрение абстрактных классов позволяет расширять функционал тех классов, которые реализуют абстрактные методы базового, но зачастую использование абстрактных классов оказывается либо чрезмерным, либо не до конца оправданным.
На самом деле, существуют достаточно простые правила и ситуации, в которых использование абстрактных классов позволяет сделать ваш код поддерживаемым и хорошо масштабируемым. Об этом расскажет данная статья.
Подробнее
#code #abstract_classes
Внедрение абстрактных классов позволяет расширять функционал тех классов, которые реализуют абстрактные методы базового, но зачастую использование абстрактных классов оказывается либо чрезмерным, либо не до конца оправданным.
На самом деле, существуют достаточно простые правила и ситуации, в которых использование абстрактных классов позволяет сделать ваш код поддерживаемым и хорошо масштабируемым. Об этом расскажет данная статья.
Подробнее
#code #abstract_classes
Руководитель поневоле
Это административная классика: разработчик, которого назначили руководить командой, потому что продвигать его по технической линии было некуда.
Он – программист и хочет программировать. По характеру он не организатор и не умеет руководить людьми, к тому же он необщителен.
Как быть, если вы один из них: Если вас не устраивает эта роль, добейтесь, чтобы вас перевели на другую работу. Не у каждого есть талант или страсть руководить. Займитесь тем делом, для которого у вас есть нужные качества и которое вам нравится.
Как работать с такими людьми: Будьте благожелательны и постарайтесь чем можно помочь руководителю команды. Вовремя докладывайте ему и старайтесь соблюдать график работ. Если чувствуете, что можете не уложиться в срок, заранее сообщите об этом руководителю, чтобы он смог принять какие-то меры.
#tips #programmer_type
Это административная классика: разработчик, которого назначили руководить командой, потому что продвигать его по технической линии было некуда.
Он – программист и хочет программировать. По характеру он не организатор и не умеет руководить людьми, к тому же он необщителен.
Как быть, если вы один из них: Если вас не устраивает эта роль, добейтесь, чтобы вас перевели на другую работу. Не у каждого есть талант или страсть руководить. Займитесь тем делом, для которого у вас есть нужные качества и которое вам нравится.
Как работать с такими людьми: Будьте благожелательны и постарайтесь чем можно помочь руководителю команды. Вовремя докладывайте ему и старайтесь соблюдать график работ. Если чувствуете, что можете не уложиться в срок, заранее сообщите об этом руководителю, чтобы он смог принять какие-то меры.
#tips #programmer_type
Идиоматика языка - это не для меня
Разработка в рамках конкретного языка предполагает следование определенному стилю кодирования, присущему используемому языку. При этом даже в рамках одного языка в одной компании будут приветствовать использование camelCase, в другой - критиковать его.
Хорошие программисты всегда учитывают идиоматику языка для достижения единообразия стиля кодирования, чтобы каждый программист, имеющий похожий стек, мог с легкостью поддерживать написанный вами код и не обливать вас грязью за вашу безответственность.
#tips #bad_programmers
Разработка в рамках конкретного языка предполагает следование определенному стилю кодирования, присущему используемому языку. При этом даже в рамках одного языка в одной компании будут приветствовать использование camelCase, в другой - критиковать его.
Хорошие программисты всегда учитывают идиоматику языка для достижения единообразия стиля кодирования, чтобы каждый программист, имеющий похожий стек, мог с легкостью поддерживать написанный вами код и не обливать вас грязью за вашу безответственность.
#tips #bad_programmers
Очисти код, избавившись от условности.
Настоящий гуру программирования когда-нибудь задается вопросом, как решить уже давно решённую задачу более элегантно, так, как ещё никому не доводилось её решать. Таким образом рождаются новые подходы к решению привычных алгоритмических задач.
В статье показана альтернатива условным операторам if-else на примере языка JavaScript. В арсенале профессионала всегда должен быть подходящий инструмент для решения конкретной задачи.
Подробнее
#clean_code #conditional_operators
Настоящий гуру программирования когда-нибудь задается вопросом, как решить уже давно решённую задачу более элегантно, так, как ещё никому не доводилось её решать. Таким образом рождаются новые подходы к решению привычных алгоритмических задач.
В статье показана альтернатива условным операторам if-else на примере языка JavaScript. В арсенале профессионала всегда должен быть подходящий инструмент для решения конкретной задачи.
Подробнее
#clean_code #conditional_operators
Как стать Senior разработчиком
Опыт общения профессора университета со своими бывшими студентами позволил ему сделать вывод о том, какие систематические действия и качества личности позволяют вырасти из Junior в Senior-разработчика.
Быть Senior - это не значит знать всё, это значит постоянно искать ответы на вопрос "почему" и никогда не удовлетворяться ответом: "Так было всегда". В статье описаны подходы, которые позволят вам стать настоящим профессионалом.
Подробнее
#programming #self_improvement
Опыт общения профессора университета со своими бывшими студентами позволил ему сделать вывод о том, какие систематические действия и качества личности позволяют вырасти из Junior в Senior-разработчика.
Быть Senior - это не значит знать всё, это значит постоянно искать ответы на вопрос "почему" и никогда не удовлетворяться ответом: "Так было всегда". В статье описаны подходы, которые позволят вам стать настоящим профессионалом.
Подробнее
#programming #self_improvement
Гуру
Это маг программирования, настоящий гений. Гуру часто бывает спокойным и скромным, даже немного странным. Он пишет прекрасный код, но плохо умеет общаться с простыми смертными.
Они знакомы со всеми современными технологиями и знают, какие из старых приемов лучше. Хороший Гуру - замечательный наставник: у него можно многому научиться.
Как быть, если вы один из них: не рассчитывайте, что все будут столь же сообразительны и думать так же, как и вы. Требуется немалое мастерство, чтобы давать простые и понятные советы.
Как работать с такими людьми: если вам повстречался Гуру, учитесь у него, впитывайте все сведения, и не только технические. Ведь чтобы зарекомендовать себя как Гуру, нужны знания, а не высокомерие.
#tips #programmer_type
Это маг программирования, настоящий гений. Гуру часто бывает спокойным и скромным, даже немного странным. Он пишет прекрасный код, но плохо умеет общаться с простыми смертными.
Они знакомы со всеми современными технологиями и знают, какие из старых приемов лучше. Хороший Гуру - замечательный наставник: у него можно многому научиться.
Как быть, если вы один из них: не рассчитывайте, что все будут столь же сообразительны и думать так же, как и вы. Требуется немалое мастерство, чтобы давать простые и понятные советы.
Как работать с такими людьми: если вам повстречался Гуру, учитесь у него, впитывайте все сведения, и не только технические. Ведь чтобы зарекомендовать себя как Гуру, нужны знания, а не высокомерие.
#tips #programmer_type
Codacy
Codacy - автоматизированный инструмент для статического анализа кода. Codacy обеспечивает разработчика отчетом о соблюдении стандарта качества кода, позволяет получить данные о цикломатической сложности, дублировании и степени покрытия кода модульными тестами.
Codacy поддерживает более 20 языков программирования, он с высокой вероятностью покрывает все потребности вашего проекта. Интеграция с GitHub упрощает проведение Code Review, ведь рекомендации по рефакторингу автоматически добавляются в комментарии.
GitHub
#tools #code_analyzer
Codacy - автоматизированный инструмент для статического анализа кода. Codacy обеспечивает разработчика отчетом о соблюдении стандарта качества кода, позволяет получить данные о цикломатической сложности, дублировании и степени покрытия кода модульными тестами.
Codacy поддерживает более 20 языков программирования, он с высокой вероятностью покрывает все потребности вашего проекта. Интеграция с GitHub упрощает проведение Code Review, ведь рекомендации по рефакторингу автоматически добавляются в комментарии.
GitHub
#tools #code_analyzer
Как стать хорошим разработчиком программного обеспечения
Профессия разработчика стремительными темпами набирает популярность на протяжении последнего десятилетия. Не удивляйтесь и не паникуйте, рост потребности только увеличится. В условиях быстро меняющихся стандартов и подходов в разработке необходимо постоянно поддерживать свои технические и коммуникационные навыки.
Данная статья покажет вам, на какие аспекты в вашей профессиональной деятельности необходимо обращать внимание в первую очередь, чтобы всегда оставаться конкурентоспособным разработчиком-профессионалом.
Подробнее
#programming #self_improvement
Профессия разработчика стремительными темпами набирает популярность на протяжении последнего десятилетия. Не удивляйтесь и не паникуйте, рост потребности только увеличится. В условиях быстро меняющихся стандартов и подходов в разработке необходимо постоянно поддерживать свои технические и коммуникационные навыки.
Данная статья покажет вам, на какие аспекты в вашей профессиональной деятельности необходимо обращать внимание в первую очередь, чтобы всегда оставаться конкурентоспособным разработчиком-профессионалом.
Подробнее
#programming #self_improvement
Грамотное программирование
Многие слышат о самодокументируемом коде, но зачастую его ценности не уделяется достаточного внимания, однако это очень грубая ошибка, когда разработчик пренебрегает документированием кода, плохо продумывает имена типов, функций, не выделяет важные фрагменты кода и не пишет осмысленные комментарии.
В будущем это создаст проблемы в сопровождении не только ему, но и его команде, ведь самые важные фрагменты программы могут упускаться из виду, что приводит к большим трудностям при исправлении ошибок и добавлении функционала. Думайте наперед, выполняйте свою работу разработчика профессионально и вы обретете одобрение и уважение коллег.
#tips #good_programmers
Многие слышат о самодокументируемом коде, но зачастую его ценности не уделяется достаточного внимания, однако это очень грубая ошибка, когда разработчик пренебрегает документированием кода, плохо продумывает имена типов, функций, не выделяет важные фрагменты кода и не пишет осмысленные комментарии.
В будущем это создаст проблемы в сопровождении не только ему, но и его команде, ведь самые важные фрагменты программы могут упускаться из виду, что приводит к большим трудностям при исправлении ошибок и добавлении функционала. Думайте наперед, выполняйте свою работу разработчика профессионально и вы обретете одобрение и уважение коллег.
#tips #good_programmers
Dependency Driven Decomposition
Декомпозиция, управляемая зависимостями, как шаблон проектирования микросервисов используется при построении сервис-ориентированной архитектуры программного обеспечения, ориентированной на взаимодействие насколько это возможно небольших, слабо связанных и легко изменяемых модулей.
Статья призвана познакомить с инструментами для сборки микросервисного ПО, а также приводит аргументы в пользу использования данных инструментов сборки.
Подробнее
#programming #microservices
Декомпозиция, управляемая зависимостями, как шаблон проектирования микросервисов используется при построении сервис-ориентированной архитектуры программного обеспечения, ориентированной на взаимодействие насколько это возможно небольших, слабо связанных и легко изменяемых модулей.
Статья призвана познакомить с инструментами для сборки микросервисного ПО, а также приводит аргументы в пользу использования данных инструментов сборки.
Подробнее
#programming #microservices
TestQuality
TestQuality - расширение GitHub, которое предоставляет мощные средства управления планами тестирования, помогая разработчикам и тестировщикам создавать, запускать и контролировать задачи тестирования ПО.
С этим инструментом вы можете:
● Быстро создавать и запускать тест-планы, тест-кейсы и наборы тестов;
● Автоматически импортировать результаты тестирования
TestQuality распространяется бесплатно для публичных репозиториев GitHub.
Инструкция по установке | GitHub
#tools #test_management
TestQuality - расширение GitHub, которое предоставляет мощные средства управления планами тестирования, помогая разработчикам и тестировщикам создавать, запускать и контролировать задачи тестирования ПО.
С этим инструментом вы можете:
● Быстро создавать и запускать тест-планы, тест-кейсы и наборы тестов;
● Автоматически импортировать результаты тестирования
TestQuality распространяется бесплатно для публичных репозиториев GitHub.
Инструкция по установке | GitHub
#tools #test_management
Ковбой
Ковбой - рисковый программист, который вряд ли утруждает себя долгими размышлениями о структуре кода, взаимодействии компонентов, качестве и чистоте. Для него важно - сделать всё быстро и так, чтобы работало, при этом от качества страдают его коллеги, которые вынуждены за ним подчищать. Он охотно узнаёт о новых технологиях, но не намерен их тестировать, ведь это займёт кучу времени и сил.
Как быть, если вы один из них: помните, вы способны на многое, но ваша проблема - ваша лень. Нет ничего лучше, чем чувствовать одобрение коллег и быть уверенным в том, что код, который вы пишете, станет эталоном для остальных разработчиков
Как работать с такими людьми: старайтесь избегать взаимодействия с кодом ковбоев, ведь вы замучаетесь исправлять его косяки, лучше найдите ковбою напарника, который смог бы его мотивировать на качественное выполнение задания.
#tips #programmer_type
Ковбой - рисковый программист, который вряд ли утруждает себя долгими размышлениями о структуре кода, взаимодействии компонентов, качестве и чистоте. Для него важно - сделать всё быстро и так, чтобы работало, при этом от качества страдают его коллеги, которые вынуждены за ним подчищать. Он охотно узнаёт о новых технологиях, но не намерен их тестировать, ведь это займёт кучу времени и сил.
Как быть, если вы один из них: помните, вы способны на многое, но ваша проблема - ваша лень. Нет ничего лучше, чем чувствовать одобрение коллег и быть уверенным в том, что код, который вы пишете, станет эталоном для остальных разработчиков
Как работать с такими людьми: старайтесь избегать взаимодействия с кодом ковбоев, ведь вы замучаетесь исправлять его косяки, лучше найдите ковбою напарника, который смог бы его мотивировать на качественное выполнение задания.
#tips #programmer_type
Объектно-ориентированный мусор
Идея ООП и, вообще, объектная модель программирования поддерживается большим количеством языков, но так ли она оправдана, стоит ли отдавать предпочтение объектной модели, если есть возможность использовать функциональный или процедурный подход.
Во всём важна разумная достаточность, ООП эффективно при грамотной архитектуре, но может вывести из строя всё приложение, если мы разрабатываем огромный сервис с миллионами пользователей. Статья призвана дать взвешенный взгляд на ООП и мотивировать разработчиков к использованию разных методик программирования.
Подробнее
#programming #models
Идея ООП и, вообще, объектная модель программирования поддерживается большим количеством языков, но так ли она оправдана, стоит ли отдавать предпочтение объектной модели, если есть возможность использовать функциональный или процедурный подход.
Во всём важна разумная достаточность, ООП эффективно при грамотной архитектуре, но может вывести из строя всё приложение, если мы разрабатываем огромный сервис с миллионами пользователей. Статья призвана дать взвешенный взгляд на ООП и мотивировать разработчиков к использованию разных методик программирования.
Подробнее
#programming #models
От чего страдает оптимальность кода
Чтобы улучшить свой код, нужно знать, отчего он может работать медленно, неоправданно расти в размере или иным образом терять качество.
Основные проблемы, которые могут приводить к снижению оптимальности:
❶ Сложность: чем больше работы должен сделать код, тем медленнее он будет выполняться
❷ Повторение: сохраняйте результаты сложных вычислений в буфере, т.к. при каждом повторно выполненном вычислении вы теряете эффективность
❸ Плохой проект: плохое проектирование приводит к плохому коду. Связанные блоки размещайте как можно ближе
❹ Ввод/вывод: старайтесь избегать блокирования выполнения программы в ожидании ввода или вывода данных.
Это далеко не весь список проблем, но он даст представление о том, на что нужно будет обратить внимание в первую очередь, ведь настоящие недоработки кроются в деталях.
#tips #optimisation
Чтобы улучшить свой код, нужно знать, отчего он может работать медленно, неоправданно расти в размере или иным образом терять качество.
Основные проблемы, которые могут приводить к снижению оптимальности:
❶ Сложность: чем больше работы должен сделать код, тем медленнее он будет выполняться
❷ Повторение: сохраняйте результаты сложных вычислений в буфере, т.к. при каждом повторно выполненном вычислении вы теряете эффективность
❸ Плохой проект: плохое проектирование приводит к плохому коду. Связанные блоки размещайте как можно ближе
❹ Ввод/вывод: старайтесь избегать блокирования выполнения программы в ожидании ввода или вывода данных.
Это далеко не весь список проблем, но он даст представление о том, на что нужно будет обратить внимание в первую очередь, ведь настоящие недоработки кроются в деталях.
#tips #optimisation
Zube
Zube - платформа для гибкого управления проектами, которая позволит всем членам вашей команды общаться с разработчиками. С Zube вы с легкостью сможете создать рабочий Agile с канбан-доской, эпопеями и спринтами.
Zube поддерживает полную интеграцию и синхронизацию данных с Github. Спринт в стиле Scrum позволит вашей команде сосредоточиться на текущих задачах. Порядок в управлении проектами очень важен, ведь он проясняет цели проекта и его границы, повышая эффективность и скорость разработки.
Github
#tools #project_management
Zube - платформа для гибкого управления проектами, которая позволит всем членам вашей команды общаться с разработчиками. С Zube вы с легкостью сможете создать рабочий Agile с канбан-доской, эпопеями и спринтами.
Zube поддерживает полную интеграцию и синхронизацию данных с Github. Спринт в стиле Scrum позволит вашей команде сосредоточиться на текущих задачах. Порядок в управлении проектами очень важен, ведь он проясняет цели проекта и его границы, повышая эффективность и скорость разработки.
Github
#tools #project_management
Жажда скорости
Высокая эффективность кода не столь важна, как некоторым кажется. Да, действительно, часто приходится исправлять явные дыры в производительности, но в целом нужно активно избегать проведения оптимизации.
Намного полезнее на этапе формулирования требований к ПО определить уровень производительности и на каждом этапе разработки проверять, удовлетворяет ли продукт заданным параметрам.
В погоне за скоростью мы теряем легкость чтения кода, сложность сопровождения и расширения также растет, поэтому к вопросам оптимизации нужно всегда подходить аккуратно и со знанием дела.
#tips #bad_programmers
Высокая эффективность кода не столь важна, как некоторым кажется. Да, действительно, часто приходится исправлять явные дыры в производительности, но в целом нужно активно избегать проведения оптимизации.
Намного полезнее на этапе формулирования требований к ПО определить уровень производительности и на каждом этапе разработки проверять, удовлетворяет ли продукт заданным параметрам.
В погоне за скоростью мы теряем легкость чтения кода, сложность сопровождения и расширения также растет, поэтому к вопросам оптимизации нужно всегда подходить аккуратно и со знанием дела.
#tips #bad_programmers
Обрабатывайте ошибки правильно
Действительно ли стоит писать отдельный класс-исключение для обработки пользовательских ошибок, стоит ли написание кастомного модуля обработки затраченного времени и усилий?
Зачастую в процессе работы приложения возникает определённый сет ошибок, который можно обработать с использованием стандартных исключительных ситуаций. Другое дело, что данные ситуации нужно продумать и предвидеть. Статья представляет собой мнение разработчика о правильной обработке ошибок.
Подробнее
#programming #error_handling
Действительно ли стоит писать отдельный класс-исключение для обработки пользовательских ошибок, стоит ли написание кастомного модуля обработки затраченного времени и усилий?
Зачастую в процессе работы приложения возникает определённый сет ошибок, который можно обработать с использованием стандартных исключительных ситуаций. Другое дело, что данные ситуации нужно продумать и предвидеть. Статья представляет собой мнение разработчика о правильной обработке ошибок.
Подробнее
#programming #error_handling