Имена или семантика классов в программировании

Автор: admin от 17-03-2017, 20:55, посмотрело: 157

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

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

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

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

Как вы яхту назовете, так она и поплывет.

Категория: Программирование

 

Что такое Resizable Concurrent Map

Автор: admin от 17-03-2017, 19:45, посмотрело: 191

В одном из прежних постов я рассказывал, как реализовать «простейшую в мире lock-free хеш-таблицу» на C++. Она была настолько проста, что было невозможно удалять из нее записи или менять ее размерность. С тех пор прошло несколько лет, и не так давно я написал несколько многопоточных ассоциативных массивов без таких ограничений. Их можно найти в моем проекте Junction на GitHub.

Junction содержит несколько многопоточных реализаций интерфейса map – даже «самая простая в мире» среди них, под названием ConcurrentMap_Crude. Для краткости будем называть ее Crude map. В этом посте я объясню разницу между Crude map и Linear map из библиотеки Junction. Linear — самый простой map в Junction, поддерживающий и изменение размера, и удаление.

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

Что такое Resizable Concurrent Map

Категория: Программирование

 

Краткая история JavaScript. Часть 1

Автор: admin от 17-03-2017, 18:25, посмотрело: 398

Отдел фронтенд-разработки компании Лайв Тайпинг перевёл для читателей Хабра большой материал о зарождении, развитии и перспективах языка javascript, вышедший в блоге сервиса Auth0. Сегодня мы публикуем первую часть перевода. Соперничество Netscape и Mosaic, грёзы об интерактивном вебе, язык программирования для не-программистов, переход от классов к прототипам и что общего между javascript и ECMAScript (спойлер: всё).

Краткая история JavaScript. Часть 1

Категория: Программирование » Веб-разработка

 

Собираем свой OpenShift Origin Cluster

Автор: admin от 17-03-2017, 18:25, посмотрело: 341

«Всю разработку — в контейнеры» — с этой фразы началось мое увлекательное путешествие в мир Docker. Попытки угодить требованиям разработчиков привели к выбору OpenShift Origin. Однако, завести полноценный кластер, как оказалось, задача нетривиальная. Во время постройки контейнерной инфраструктуры я пытался найти что-нибудь по теме, в том числе на Хабре, и не находил, как это ни странно. Поэтому ниже я попробую описать весь базовый процесс установки и постараюсь уберечь вас от граблей, по которым фактически гулял.

Приступим:

Категория: Админитстрирование » Системное администрирование

 

Security Week 11: 38 зараженных смартфонов, ФБР плачет от шифрования, Google снова подлатал Chrome

Автор: admin от 17-03-2017, 18:25, посмотрело: 188

Security Week 11: 38 зараженных смартфонов, ФБР плачет от шифрования, Google снова подлатал ChromeПодцепить что-нибудь вредоносное на более-менее современной версии Android не так уж и просто. В большинстве случаев атака проводится с применением социальной инженерии, да такой лютой, что жертва сама разрешает в настройках системы установку приложений из левых источников, сама скачивает и сама же устанавливает троянца на свой смартфон. И нам вроде бы уже не страшно, потому что это не про нас. Но нашлись ребята с выдумкой и по нашу душу, которые начали продавать аппараты со встроенным зловредом, причем через солидные магазины.

Категория: Информационная безопасность, Google, Android, Криптография

 

Настройка DUNDi в Asterisk, под управлением FreePBX

Автор: admin от 17-03-2017, 16:35, посмотрело: 352

Опытным администраторам VoIP эта статья будет мало интересна, адресована она админам малых IP-телефонных серверов для маленьких офисов.

Категория: Админитстрирование » Системное администрирование

 

Пишем Java Stream API на коленке за пару минут

Автор: admin от 17-03-2017, 16:20, посмотрело: 177

Stream API — замечательная вещь быстро завоевавшая популярность у джава программистов. Лаконичные однострочники обрабатывающие коллекции данных посредством цепочек простых операций map, filter, forEach, collect оказались очень удобны. Операции над парами ключ-значение, конечно, тоже не помешали бы, но увы.

В целом примерно понятно как это всё устроено, но все же зачастую ответ на вопрос «А как бы это написал я?» здорово помогает понять внутренние механизмы той или иной технологии. Так получилось, что внезапно для себя я ответил на этот вопрос применительно к Stream API, историей изобретения этого велосипеда и спешу с вами поделиться.

Категория: Программирование

 

Splunk. Введение в анализ машинных данных. Примеры SPL запросов и визуализация логов

Автор: admin от 17-03-2017, 15:30, посмотрело: 430

Splunk. Введение в анализ машинных данных. Примеры SPL запросов и визуализация логов

В данной статье мы расскажем и покажем как загрузить данные в Splunk, как строить поисковые запросы в системе на основе встроенного языка SPL и как можно их визуализировать. Это чисто практическая «How to» статья на основе тестовых данных, доступ к которым предоставляется свободно и доступен для скачивания всем желающим.

После прочтения и практического повторения Вы научитесь:


  • Пользоваться базовым функционалом системы

  • Загружать данные в Splunk

  • Строить базовые поисковые запросы

  • Визуализировать полученные результаты

Категория: Системное администрирование, Сетевые технологии

 

Glitch — новый подход к разработке приложений

Автор: admin от 17-03-2017, 15:20, посмотрело: 170

На днях мы наткнулись на интересную статью на блог-платформе Medium, речь в которой идет о свежем проекте компании Fog Creek — Glitch (с английского «глюк», «сбой программы»). Бета-версия проекта стартовала в декабре 2016 года, правда, под другим названием, но об этом позже.

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

Glitch — новый подход к разработке приложений


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

Категория: Программирование, Веб-разработка

 

9 интересных сервисов для веб-дизайнера. Специальная подборка

Автор: admin от 17-03-2017, 15:20, посмотрело: 180

В современном веб-дизайне существует достаточно много инструментов для web-дизайна. Это и классика — графические редакторы Photoshop и Sketch, и программы, совмещающие одновременно дизайн и верстку, такие как Macaw и Adobe Muse. И, как мы считаем, будущее web-дизайна — платформы для визуального дизайна сайтов в браузере, одним из примеров которых является Pixli.

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

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

Категория: Программирование » Веб-разработка

 
Назад Вперед