пятница, 15 февраля 2019 г.

Работа с потоками в C#

1. Начало работы

Обзор и ключевые понятия

C# поддерживает параллельное выполнение кода через многопоточность. Поток – это независимый путь исполнения, способный выполняться одновременно с другими потоками.
Программа на C# запускается как единственный поток, автоматически создаваемый CLR и операционной системой (“главный” поток), и становится многопоточной при помощи создания дополнительных потоков. Вот простой пример и его вывод:

Как работает реляционная БД

Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

понедельник, 26 сентября 2016 г.

Специализация в разработке

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

суббота, 21 ноября 2015 г.

Цели компании


В нашей компании ежегодно происходит общее собрание, куда приглашаются только избранные и где озвучиваются цели компании. Все это с пафосом транслируется на всю компанию. Я задумался, на сколько эффективны эти цели. Например, цель в том, чтобы в каждой компании в России пользовались нашими продуктами. Предположим, что эта цель воплотилась в жизнь. Кому станет лучше от этого? Программист, который пишет программу будет продолжать получать точно такую же зарплату. Сотрудник, которого наняли на испытательный срок, и которого уволили через три месяца, будет чувствовать, что стало лучше? Вовсе нет. Во время транляции этого собрания, один сотрудник написал, что он обнаружил один плюс от собрания: ему достались плюшки, которые обычно съедаются через несколько минут, как только они появляются на кухне.
Или, например, можно поставить цель заработать в два раза больше денег. Да, будет узкая группа лиц в компании, которые почувствуют от этого выгоду. Для остальных жизнь никак не изменится. Компании не выгодно платить рядовому сотруднику значительно больше, чем средняя зарплата на рынке. Например, я задерживаюсь после работы. Жена и дети спрашивают, зачем? Как мне ответить? Чтобы поднять зарплату директора в два раза больше?
Для того, чтобы решить эту непростую проблему, существуют цели, которые называются миссиями компаний. Например, миссия IKEA "Улучшение повседневной жизни каждого". Миссия Google: "Удобно организовать всю информацию в мире и сделать ее доступной и полезной каждому". Чтобы усилить мотивацию всех сотрудников в компании, ее цели должны строиться вокруг миссий. Миссия должна нести добро не одной отдельной компании, а вообще всем. Если такой миссии нет, то компания не станет лидером.

пятница, 3 апреля 2015 г.

Ох, как же тяжело быть программистом?

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

пятница, 28 июня 2013 г.

Второе внимание облегчает понимание

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

Карлос Кастанеда Дар орла
Любые мероприятия по разработке сайтов, коллективные блоги, книги по менеджменту Software Development содержат статьи и мысли о том, что нужно мотивировать сотрудников, писать код качественно и быстро, зарабатывать больше денег. Другими словами, копать глубже, кидать дальше. Почему так остро стоит проблема мотивации?

Архитектура высоконагруженной системы Диадок

Размещаю здесь статью, которую когда-то писал для Хабра, чтобы не потерялась.

Те, кто интересуется highload-системами, читали про архитектуры Twitter, Facebook и прочие другие. Но никогда еще не было публикаций о системах такого класса, как Диадок. В отличие от Twitter, эта система не является бесплатной и доступной всем и содержит довольно большой слой бизнес-логики, предназначенной для решения задач из конкретной предметной области.