User
Присвоение имён: руководство для программиста
Присвоение имён — одна из главных трудностей в разработке. Невозможно подсчитать, сколько времени мы тратим на обдумывание имён и на попытки разобраться в коде с плохими именами. И не важно, объекты это, методы, классы или что-то другое. Считается доказанным фактом, что мы тратим больше времени на чтение кода, а не на его написание, поэтому хорошие правила присвоения имён в будущем облегчат вам жизнь.
Хорошие имена делают код лучше и чище. Они помогают интуитивно определять, за что отвечает каждая часть кода. В будущем другим разработчикам будет легче читать ваш код, да и вам самим тоже.
Ниже объясним важность хороших правил присвоения имён и поделимся полезными советами.
Боты на .Net Core для Telegram, Slack и Facebook
Практически все, кто пользуется современными средствами обмена сообщениями, сталкивались с ботами. Одно из определений бота – это программа, выполняющая автоматически и/или по заданному расписанию какие-либо действия через интерфейсы, предназначенные для людей.
Боты могут использоваться для информирования, для автоматизации процессов (например, автоматической генерации задачи в TFS на основе письма пользователя) и для многих других целей, но т.к. одной статьи не хватит, чтобы рассмотреть все варианты, далее пойдёт рассказ лишь о том, как создать бота для обработки команд.
Принципы SOLID в действии: от Slack до Twilio
Похоже, что в наши дни RESTful API существует абсолютно для всего. От платежей до бронирования столиков, от простых уведомлений до развёртывания виртуальных машин — почти всё доступно через простое HTTP-взаимодействие.
Если вы разрабатываете собственный сервис, то часто хотите обеспечить его работу одновременно на нескольких платформах. Проверенные временем принципы ООД (объектно-ориентированного дизайна) сделают ваш код более отказоустойчивым и упростят расширяемость.
В этой статье мы изучим один конкретный подход к проектированию, который называется SOLID (это акроним). Используем его на практике в написании сервиса с интеграцией Slack, а затем расширим для использования с Twilio.
Анализ производительности React 16 приложений с помощью инструментов разработчика Chrome
В данном материале, на примере реального React-приложения, будут показаны новые мощные средства мониторинга производительности кода с использованием инструментов разработчика Chrome. Этими средствами может воспользоваться любой React-разработчик для поиска проблем в медленных компонентах.
Что намазать на зубы, чтобы они не выпали
Хорошо зафиксированный пациент в анестезии не нуждается
По многочисленным просьбам трудящихся сегодня мы будем заниматься очень важными вопросами:
- Как правильно мазать зубы пальцем?
- Хорошо ли растворяются пломбы в кислоте?
- Почему больно, когда сверлят зубы дрелью без анестезии?
- Зачем мазать зубы зеленкой?
- Лечение кариеса на дому
- Глубокое микрофторирование эмали
Немного пробежимся по скучной теме строения зуба и сразу погрузимся в волнующий мир бесчисленных тварей, которые жрут вас заживо, и разнообразных полезных стоматологических пузырьков и тюбиков.
JavaScript: элементы стиля
Надо заметить, что речь не идёт о жёстких правилах. То, о чём мы сегодня поговорим — лишь рекомендации. Даже если вы решите следовать им, вполне могут найтись веские причины для того, чтобы от них отклониться, например, если это поможет сделать код понятнее. Однако, поступая так, будьте бдительны и помните о том, что люди подвержены когнитивным искажениям. Например — выбирая между обычными и стрелочными функциями в JavaScript, тот, кто не очень хорошо знаком с последними, предпочтёт обычные функции, в силу привычки считая их понятнее, проще, удобнее.
Игры, в которых нужно писать код: Grid Garden, Elevator Saga и другие
В детстве мы постигаем премудрости жизни через игру. Это важнейший элемент развития личности, социальных навыков, получения знаний об окружающем мире. Игры — хороший «контейнер» для донесения и закрепления каких-либо знаний. Яркий пример — игры, в которых нужно писать код. Наверняка все вы о них слышали, а в некоторые даже играли. Их первичная задача — развлечь людей, уже владеющих навыками программирования, но они могут использоваться и для обучения. Эти игры помогут освежить свои знания по тому или иному языку, отвлечься и заняться более простой алгоритмической задачей.
12 инструментов для отладки .NET-приложений по производительности и по памяти
Какие-то из них относительно просты, другие потребуют времени и сил для освоения. Под катом вы найдете краткий обзор 12 инструментов, которые будут полезны перфоманс-инженерам, специалистам поддержки вернего уровня и вообще разработчикам, пекущимся о производительности своих приложений.
Добрый червь Hajime защищает устройства Интернета вещей
Вредоносный червь Mirai распространяется по сети и добавляет в свой ботнет новые устройства Интернета вещей. Но у него есть сильный противник — защитный червь Hajime. Впервые замеченный в октябре 2016 года, этот ботнет уже взял под защиту более 10 000 сетевых видеокамер, маршрутизаторов, телевизионных приставок и других приборов, подключенных к Интернету.
Каждые 10 минут Hajime выводит в терминале сообщение: «Просто этичный хакер, защищаем некоторые системы. Важные сообщения будут подписаны таким же образом, как это! Автор Hajime. Контакт ЗАКРЫТ. Будьте бдительны!»
В отличие от других ботнетов, Hajime не осуществляет DDoS-атак, не майнит биткоины и не делает никаких вредоносных действий на заражённом устройстве, если не считать сканирования сети в поисках других уязвимых девайсов, которые он тоже заражает с целью защиты. Сканируются порты TCP/23 (telnet) и TCP/5358 (WSDAPI). После заражения червь блокирует четыре порта, которые используются для распространения Mirai и других подобных зловредов: это TCP/23 (telnet), TCP/7547 (TR-069), TCP/5555 (TR-069) и TCP/5358 (WSDAPI).
Мотивация сотрудников: правила офисной дипломатии
Та же история происходит в сфере мотивации в офисной жизни: нам навязали какие-то шаблоны и правила, которым должны соответствовать компания и сам работник. Мотивация теряет свои очертания и уходит в крайности: например, на собеседовании могут рассказывать не про проект, а про роскошный офис и возможность поспать в рабочее время. Попробуем трезво оценить каждый элемент мотивации и разобраться, как стимулировать сотрудника работать честно и продуктивно.
Не то что бы мы так работали… Но уж больно хороша мотивация!
Суперсилы WinDbg для .NET-разработчиков
Особенно этот материал будет полезен тем, кому сложно смотреть доклады на английском языке, так как расшифровка переведена на великий и могучий!
Orange Pi One
Очень и очень интересная железка. Размер чуть меньше кредитной карты.
Что такое блокчейн и зачем он нужен
В сознании среднестатистического пользователя само слово “блокчейн” (“цепочка блоков”) стало довольно тесно связано с термином “биткоин”, что двояко отразилось на восприятии.
С одной стороны, популярность биткоина вызывает интерес и к блокчейну, с другой стороны, в массовом сознании биткоин часто ассоциируется лишь с чем-то негативным, запрещенным и подвергаемым преследованию со стороны законодателей. Мол, зачем расплачиваться биткоинами, когда есть целый зоопарк электронных кошельков и банковских карт? Ясное дело – чтобы проворачивать какие-то темные делишки.
Что почитать программисту на досуге
Если вы хорошо читаете по-английски, отложите в сторону спецификации и тьюториалы. Отвлекитесь от очередного кукбука по очередному фреймворку и языку программирования. Предлагаю вашему вниманию мой личный список книг о программировании, которые приятно почитать на досуге: интересный сюжет, жизненные истории, поучительный опыт.
Анализ исходного кода Another World
Я потратил две недели на чтение и реверс-инжиниринг исходного кода Another World (в Северной Америке игра вышла под названием Out Of This World). Моя работа основана на обратной разработке Грегори Монтуа (Gregory Montoir) оригинального исполняемого файла для DOS из двоичного кода в C++.
Я был потрясён, обнаружив элегантную систему, состоящую из виртуальной машины, интерпретирующей байт-код в реальном времени и генерирующей полноэкранное векторное движение. Результатом этой работы стала одна из лучших игр всех времён…
Всё это умещалось на гибкий диск ёмкостью 1,44 МБ и работало на 600 КБ ОЗУ. Совсем неплохо для 1991 года! Как обычно, я привёл свои заметки в порядок — это поможет кому-нибудь сэкономить несколько часов работы.
Что ловить в карьере ИТ-архитектора: ожидания VS реальность
Меня зовут Анна Лисовская, я ИТ-архитектор департамента развития корпоративных продаж. Идею этого поста мне подсказал бывший сокурсник, которому внезапно стало скучно в разработке. В один прекрасный день он решил, что больше не хочет писать код, начал искать возможности для развития в смежных ИТ-областях и атаковал меня вопросами об особенностях работы ИТ-архитекторов. Из беседы стало ясно, что даже коллеги-айтишники слабо представляют себе сложности и особенности профессии ИТ-архитектора. Не исключено, что заблуждения, в которых пребывал мой бывший сокурсник, достаточно расхожи.
Я собрала свой опыт и опыт коллег в пост в формате «ожидание/реальность». Такой формат мне видится наиболее полезным с точки зрения работы с ожиданиями относительно профессии ИТ-архитектора – часто среди айтишников эти ожидания либо не совсем верны, либо завышены. Много тонких моментов становятся очевидны только при полном погружении в профессию. Лучше узнать о них «на берегу» и поразмышлять, сможете ли вы с ними мириться. Хочется думать, что мои заметки будут полезными для других айтишников, которые намереваются переквалифицироваться в ИТ-архитекторы.
Как ухудшить производительность вашего приложения — типичные ошибки разработчиков
Помнить всё: метод римской комнаты
Совет прекрасный, но не всегда есть под рукой система, которой я доверяю. И не всегда я ей доверяю. Бывают ситуации, когда ни записать, ни прочитать записанное невозможно. На пробежке, например. На грани сна. В бане. Во время шторма на палубе каравеллы.
В конце концов, эту чудесную систему можно где-то потерять.
В таких случаях всё-таки придётся использовать голову, но не загружая её. И лучший из известных мне способов это сделать — метод римской комнаты. Также его называют дворец памяти или дорога Цицерона.
Использование паттерна SchedulableObject для выделения бизнес-логики в отдельный поток
Интерфейс мобильного приложения — это лицо продукта. Чем более отзывчив интерфейс, тем больше радости приносит продукт. Однако удовлетворённость от использования приложения зависит прежде всего от объёма его функций. По мере увеличения количества и сложности задач они требуют всё больше и больше времени. Если архитектура приложения предполагает, что все они выполняются в главном потоке, то задачи бизнес-логики начинают конкурировать за время с задачами отрисовки интерфейса. При таком подходе рано или поздно обязательно находится сценарий, исполнение которого приводит к залипанию приложения. Для борьбы с этой напастью существует три принципиально разных подхода:
- Оптимизация алгоритмов и структур данных, вовлечённых в исполнение проблемного сценария.
- Вынос проблемного сценария из главного потока.
- Вынос из главного потока всех функций приложения, за исключением собственно рендеринга пользовательского интерфейса.
Паттерн SchedulableObject позволяет аккуратно реализовать третий сценарий. Под катом рассматриваются его части с примерами реализации на Swift, а также преимущества и недостатки по сравнению с первыми двумя подходами.
Information
- Rating
- Does not participate
- Registered
- Activity