Pull to refresh
5
0
Дмитрий @Krizai

User

Send message

Маленькая архитектура

Reading time6 min
Views23K


Я хочу стать архитектором ПО:


Это хорошая цель для разработчика


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


Хм. Ну, тогда ты вовсе не хочешь стать архитектором ПО.


Конечно хочу! Я хочу быть тем человеком, который принимает все важные решения.


Это хорошо, но ты не перечислил важных решений. Ты перечислил решения, не играющие особой роли.


В смысле? База данных – это не важное решение? Знаешь, сколько мы денег тратим на них?


Скорее всего слишком много. И нет, база данных – это не одно из самых важных решений.


Как можно такое говорить? База данных находится в самом центре системы! Там собраны все данные, они сортируются, индексируются и к ним осуществляется доступ. Без нее не будет системы!


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

Читать дальше →
Total votes 73: ↑64 and ↓9+55
Comments45

Различия между MVVM и остальными MV*-паттернами

Reading time11 min
Views156K


От переводчика:
Уже опубликовано много материалов по MVC и его производным паттернам, но каждый понимает их по-своему. На этой почве возникают разногласия и холивары. Даже опытные разработчики спорят о том, в чем отличие между MVP, MVVM и Presentation Model и что должен делать тот или иной компонент в каждом паттерне. Ситуация усугубляется еще и тем, что многие не знают истинную роль контроллера в классическом варианте MVC. Предлагаю вашему вниманию перевод хорошей обзорной статьи, которая многое проясняет и расставляет всё по своим местам.
Разобраться в MV-паттернах
Total votes 38: ↑37 and ↓1+36
Comments29

RxSwift: работа с GUI

Reading time26 min
Views62K


Моя первая статья по RxSwift покрывала практически все базовые операторы, без знаний которых соваться в разработку не имело особого смысла. Но это всего лишь алфавит функционального программирования. Для того чтобы писать полноценные программы необходимо понять основные принципы при работе с GUI.

В основном для проработки материала используются стандартные примеры из RxExample, но для прояснения отдельных моментов была создана песочница UIExplanation и дополнительный пример в RxExample
Весь код можно найти здесь github.com/sparklone/RxSwift

При работе с UI элементами в Rx есть основные потребности:
1) понять какие подводные камни нас ожидают в принципе и зачем нужен Driver
2) научиться делать привязку UI к Observable, чтобы элементы Observable меняли состояние свойства/свойств UI элемента. Это решается с помощью UIBindingObserver
3) научиться переводить паттерн target-action на рельсы Rx. Это делается с помощью ControlEvent
4) сделать двустороннюю привязку к свойствам UI элемента. Это делается с помощью ControlProperty
5) т.к. зачастую у UI элементов delegate/dataSource предполагаются в единственном числе, — ввели класс DelegateProxy, который позволяет одновременно использовать как обычный делегат, так и Rx последовательности.

Рассмотрим каждую потребность отдельно
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments29

Самые крутые IT-музеи мира. Часть 1

Reading time6 min
Views35K
Катаясь по миру во время отпуска, айтишник всегда найдёт, чем заняться, когда ему надоест валяться на пляже или осматривать местные достопримечательности. В конце концов, есть клубы и бары… Но сердцу-то хочется особых радостей, а мозгу – своих, тёплых ламповых впечатлений. Окей гугл, освободим вас от утомительного сёрфинга по интернету в поисках увлекательных IT-экспозиций, которые приведут вас в восторг и, скорее всего, наполнят новыми знаниями. Поехали.


Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments10

Записки iOS программиста о его молотках, кувалдах и микрометрах

Reading time20 min
Views32K
В один прекрасный момент, когда на собеседованиях меня уже убеждали, что я senior iOS developer — у меня возникло ощущение, что я уперся. Пишу похожий код, решаю задачи похожими способами и ощущение, что непонятно, куда развиваться дальше. Я думаю, с этой проблемой сталкивался не один я — нехваткой новых идей, концепций, направлений. Я бы хотел рассказать вам о тех инструментах и фреймворках, которые помогли преодолеть мне это ощущение.

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


Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments13

Грандиозное тестирование батареек

Reading time4 min
Views359K
Каждый раз при покупке батареек у меня возникало много вопросов:

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

Чтобы получить ответы на эти вопросы я решил протестировать все батарейки АА и ААА, которые удастся найти в Москве. Я собрал 58 видов батареек АА и 35 видов ААА. Всего было протестировано 255 батареек — 170 АА и 85 ААА.


Читать дальше →
Total votes 234: ↑232 and ↓2+230
Comments117

Рисуем акрилом по ткани

Reading time3 min
Views258K
Тут народ спрашивал об особенностях акриловой краски, и где ее купить. Я подумал, что не помешало бы тогда еще и рассказать подробнее о технологии ее нанесения на ткань, и решил вынести рассказ в отдельный топик.

Акриловые краски — это такие краски на водной основе, которые состоят из трех ключевых компонентов — собственно, воды, красителя и акриловой эмульсии. Этот вид красок характеризуется яркостью цветов, а главное (при нанесении рисунка на одежду это важно в первую очередь) — устойчивостью к агрессивным условиям. То есть, должным образом сделав рисунок на ткани, за него можно почти не беспокоиться. Он не отслоится, не раскрошится, не сморщится и вообще долгое время будет оставаться как новенький, потому как акрил хорошо переносит перепады температур, механические воздействия и маловосприимчив к влаге.
Читать дальше →
Total votes 97: ↑79 and ↓18+61
Comments61

Генная инженерия от A до Z часть 2

Reading time6 min
Views25K
Итак, настало время продолжения статьи о том, как все же сделать светящуюся елку к следующему новому году с применением настоящей генной инженерии, а не той, о которой вы до этого могли прочитать в новостях :)

Краткое содержание предыдущей серии:

Ученые открыли ген синего свечения. Мы прочитали об этом гене и загорелись сделать светящуюся трансгенную елку. Нашли в специализированных ресурсах его название и последовательность, выбили командировку у шефа и скатались туда, где живет животное – бутявка, в которой содержится этот ген.
Путем различных ухищрений с применением специального оборудования мы получили чистые молекулы ДНК гена bl1, кодирующего белок синего свечения.


У нас есть ген. Чего же мы ждем, спросят читатели, давайте засунем этот ген в елку и она начнет светиться?

Не все так просто, и вот, почему.
Читать дальше →
Total votes 120: ↑116 and ↓4+112
Comments68

Лучшие графические редакторы, написанные на Flash

Reading time7 min
Views2.1K

Лучшие графические редакторы, написанные на Flash


Когда заходит речь о миграции с Windows на другие платформы или на веб-приложения, каждый раз возникает неоспоримый аргумент: но там же нет фотошопа! Этот легендарный графический пакет благодаря пиратам прижился, наверное, на подавляющем большинстве компьютеров в СНГ. И несомненно альтернативу столь сложной программе найти сложно. Но если откровенно, как в большинстве случаев используется вся мощь фотошопа? Изменить размеры, подкорректировать яркость, иногда убрать лишние детали, да отправить на е-мейл подружке.
Нужен ли для этого полноценный большой Photoshop? В большинстве случаев нет, если только вы не дизайнер-профессионал высокого класса. А значит, аналог найти будет уже проще.
Но искать аналог среди настольных программ или программ под Linux это неинтересно! Мы живем в век Web 2.0, поэтому попробуем поискать аналоги среди веб-приложений. Да, еще недавно это было бы фантастикой, но развитие графических возможностей прежде всего Flash уже сегодня позволяет получить весьма интересные результаты. Конечно, описываемые редакторы не станут полноценной заменой «старшему брату», но для небольших фотокоррекций они пригодятся. Или представьте себя в интернет-кафе, где привычного вам софта нет, а вам нужно срочно взять готовую картинку, что-то в ней поменять, отметить или подписать и отправить собеседнику. В этом случае вас тоже может спасти одна из рассматриваемых ниже программ.
Читать о 10 наиболее интересных представителях этого вида
Total votes 84: ↑78 and ↓6+72
Comments37

Отдых мозгам после работы — Выпиливание лобзиком

Reading time2 min
Views3.2K
В детстве меня родители отдали в кружок художественного выпиливания лобзиком. Ходил я туда достаточно долго и сделал несколько вещиц. Недавно я вспомнил о своем былом увлечении и понял, что это прекрасный отдых мозгам после учебы и работы. Да и настроение поднимает.

Что можно сделать.

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

Бра

Читать дальше →
Total votes 215: ↑170 and ↓45+125
Comments134

Делаем сами простые часы за выходные

Reading time7 min
Views60K
Статья о том, как за выходные с нуля сделать простые электронные часы с использованием микроконтроллера. Показана только основа часов, количество программных и аппаратных фич ограничивается только вашей фантазией).

Читать дальше →
Total votes 165: ↑150 and ↓15+135
Comments80

(Э/И)ммиграция в Германию, часть 1

Reading time8 min
Views23K
Ввиду того, что мой предыдущий пост об изучении информатики в Германии стал популярным и в комментариях было задано множество вопросов о том, какие существуют возможности работы за границей, в частности, в Германии, я постараюсь в серии постов немного осветить этот вопрос. В контексте данных постов я рассматриваю эммиграцию не как переезд с получением разрешение не постоянное проживание (ПМЖ), хотя это может быть конечной целью, а возможность переезда с получением хотя бы временного (ограниченного определенным сроков, и, возможно, работодателем) разрешения на пребывание (ВНЖ).

Итак, рассмотрим сначала какие вообще существуют возможности получения ВНЖ в Германии.
Читать дальше →
Total votes 71: ↑56 and ↓15+41
Comments81

Библиотека начинающего ООП программиста — ваши советы

Reading time1 min
Views3.7K
Я так понимаю, многие сейчас страдают от неорганизованности знаний. Нахватавшись по верхам и того и этого, не имея базы, основы, пытаешься разбираться с вопросами и проблемами по ходу их возникновения. От этого беспорядочность только увеличивается. Так вот и я — вроде бы программирую, а получается быдлокод.

Решил с этим бороться и начать изучать все заново, по порядку.

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

Основы программирования, основы ООП, создание удобного и расширяемого кода и т.д. и т.п. Движусь, в основном, в сторону PHP и Adobe Flex, но параллельно приходится знать и Javascript и объектно-ориентированные базы данных и C++ и многое другое.

В комментарии приглашаются все, кто может подсказать полезную литературу, сайты, туториалы и FAQ'и. Думаю, что топик окажется полезным для многих людей. А по результатам попытаюсь составить библиотечку «must have».

Ваше слово :)
Total votes 45: ↑39 and ↓6+33
Comments87

История одного байта

Reading time15 min
Views54K
Предисловие.
Этот рассказ имеет свою длинную историю. Для многих это, возможно, будет махровый баян, но мне кажется он стоит того, что бы его прочитали новые люди.
Во всех источниках, где я встречал его сведения об авторе были просты и незатейливы: Dmitry Galuscenko. Если кто-то может указать сайт или e-mail — напишите в комментариях, я с удовольствием добавлю.
Итак, начнем.


Мне не хватало байта. Всего одного. Да, да. Того самого, что из восьми бит состоит. Что? Hет, я не псих, хотя одному богу известно, сколь тонкой была граница отделявшая меня от этого состояния.
Hо все по порядку
Total votes 140: ↑121 and ↓19+102
Comments120

Масштабируемые и высокопроизводительные веб-приложения. Гл. 1. Протокол HTTP. Draft.

Reading time13 min
Views2.9K
Обсуждаемые темы: HTTP-запросы; HTTP-ответы; Оптимизация с помощью HTTP keep-alive; Оптимизация с помощью HTTP-pipelining; Оптимизация с помощью HTTP-кэширования: Кэширование в современных клиентах, Стратегии ревалидации, Отключение кэширования и интерактивные страницы; Оптимизация с помощью компрессии; Специфическая оптимизация отдаваемого содержимого; Комбинирование контента.

Комментарии приветствуются.

Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments11

Азбука хорошего разработчика. Книжки для чтения

Reading time2 min
Views3.4K
Часто разработчиков нужно направить, поскольку они не имеют понятия о том, что им нужно изучить для повышения своего уровня. В этой заметке я опишу источники знаний, в моем понимании, необходимые для этой цели. Пишу в порядке, в котором я их предлагаю читать.

Паттерны проектирования

Википедия — там, в принципе, на хорошем уровне все описано и приведены примеры на разных языках.
Базовая книга – классика:
«Приемы объектно-ориентированного проектирования. Паттерны проектирования» — читал книгу давно, и раза 3. Вам того же советую. Даст возможность понимать большое количество терминов, произносимых другими разработчиками.

Рефакторинг

«Рефакторинг. Улучшение существующего кода» — вероятно, эта книга сделала революцию в написании кода. Читается быстро и интересно. Методы рефакторинга должны отложиться в голове до конца жизни. Ваш код отныне будет лучше. В книге есть упоминание про юнит тестинг.
Читать дальше →
Total votes 73: ↑72 and ↓1+71
Comments66

Время стратегий

Reading time3 min
Views890
В последнее время практически любой поклонник жанра стратегий мог преспокойно находится в анабиозе и не переживать, что пропустит что-либо интересное. Казалось, что разработчики разом позабыли про RTS. На самом деле все обстояло не так. Нужные игры ковались в секретных лабораториях. И вот настало время перемен. Готовые игры попали на полки магазинов.

Сегодня мы рассмотрим 3 стратегические игры весеннего призыва этого года.
Читать дальше →
Total votes 51: ↑42 and ↓9+33
Comments61

50 цитат о программировании всех времён

Reading time6 min
Views159K
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →
Total votes 344: ↑336 and ↓8+328
Comments136

История Linux. Вкратце о главном

Reading time11 min
Views62K
Корни Linux прослеживаются ещё с 70-х годов 20-го века. Точкой отсчёта можно считать появление операционной системы Unix в 1969-м году в США в фирме Bell Laboratories, дочернем подразделении компании AT&T. Unix стала основной для большого количества операционных систем промышленного класса. Самые основные из них отображены на этой временной шкале:


Читать дальше →
Total votes 355: ↑327 and ↓28+299
Comments202

Продвижение программы в Apple Store, на примере совершенно конкретного приложения

Reading time7 min
Views14K
Этот пост — попытка обобщить мой небольшой опыт продвижения программ в АппСтор и начать обсуждение способов продвижения

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

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

Читать дальше →
Total votes 79: ↑75 and ↓4+71
Comments46

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity