вторник, 19 августа 2008 г.

Стиль

Дорогой блог!

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

Дорогоуважаемые программисты! Пишите все в одном стиле, а то очень сложно поддерживать код.

До скорых встреч!

понедельник, 18 августа 2008 г.

Родословные юз кейсов

Дорогой блог!

Сегодня я расскажу тебе о юз кейсах. Это такие штуки, которые говорят, как можно и нужно использовать что-нибудь. Их можно рисовать и читать, а еще не так давно я узнал, что их можно делать объектами и использовать как объекты.
А если их можно делать объектами, то можно их делать родовыми объектами! И тогда обычный сценарий использования можно настраивать и изменять прямо когда пользователь его использует. Программист может менять поведение своей программы, практически не меняя код, а пользователь каждый раз будет работать по-разному. Как страшно жить!
Дорогой дневник, я вот задумался, я будут ли такие юз кейсы юз кейсами или они уже что-то большее?

Дорогоуважаемые программисты! Пожалуйста бережно обращайтесь со своими юз кейсами!

До скорых встреч!

среда, 13 августа 2008 г.

Перечислимые типы и поля

Дорогой блог!

Сегодня я расскажу тебе о том, как получить сразу все поля перечислимого типа. Чтобы не путать тебя, дневник, я сразу расскажу, какой перечислимый тип у нас будет:
public enum MyEnum
{
Field,
AnotherField,
OneMore
}

Когда я был совсем маленьким и неумным я делал так:
public MyEnum[] GetMyEnumValues()
{
return new MyEnum[] {
MyEnum.Field,
MyEnum.AnotherField,
MyEnum.OneMore
};
}

Но если я или другой программист когда-нибудь добавит поле в перечислимый тип, или наоборот уберет его, или просто изменит его название, все сломается. Поэтому так делать плохо и так делают только плохие программисты. А хорошие программисты всегда делают так:

public IList<MyEnum> MyEnumFields
{
get
{
IList<MyEnum> result = new IList<MyEnum>();
MyEnum values = MyEnum.Field;

foreach(FieldInfo field in typeof(MyEnum).GetFields())
if (field.FieldType.Equals(typeof(MyEnum)))
result.Add((MyEnum)field.GetValue(value));

return result;
}
}

Дорогоуважаемые программисты! Пожалуйста будьте только хорошими и не расстраивайте своих коллег, и аналитиков, и менеджеров. Обращайтесь с типами правильно и изучайте типы.

До скорых встреч!

понедельник, 11 августа 2008 г.

Сервисы

Дорогой блог!

Сегодня я расскажу тебе о службах. Служба -- это такая специальная программа, у которой нет окошка и она работает сама по себе. Еще службы называются Windows Services.
В C#, на котором я пишу программы и сервисы, можно управлять сервисами из других программ. Микрософт говорит, что для этого есть хороший класс ServiceController. Он позволяет запускать службы и останавливать их, а еще отправлять им всякие команды. Для этого есть метод ExecuteCommand, в который можно передать код команды. И сервис должен уметь обрабатывать такие команды, для этого надо написать в нем метод OnCustomCommand. Вот, и все это вместе хорошо и красиво работает.

Дорогоуважаемые программисты! Когда вы будете писать свои сервисы, не забудьте, про все эти замечательные методы и про то, что они требуют разных разрешений. А еще не забудьте, что параметрами метода ExecuteCommand могут быть только целые числа от 128 до 256. А если вы вдруг об этом забудете, то добрый .Net напомнит вам об этом с помощью InvalidOperationException и еще скажет примерно вот так: "Невозможно управлять <...> службой на компьютере '<...>'.".

До скорых встреч!

понедельник, 4 августа 2008 г.

Дорогой блог!

Сегодня я расскажу тебе об одном человеке, он онолитег. Не подумай пожалуйста, что я ошибся, нет-нет. Он сильно отличается от аналитиков, о которых я тебе уже рассказывал.
Во-первых, он отлично знает русский язык и всегда использует много разных слов: вот, как бы, ну, там, понимаешь и другие интересные слова. Я очень люблю слушать, как он говорит. Он сам не говорит, но мне кажется, что у него красный диплом школы Викторов Степанычей. Он скромный и поэтому хороший.
Во-вторых, наш онолитег хорошо знает все о программах, которые есть в его проектах. Иногда он даже лучше программистов и подсказывает им, что они неправильно делают, но никогда не говорит, как надо делать правильно, чтобы программистам было интересно.
Вот какой он хороший онолитег.

Дорогоуважаемые программисты! Если у вас тоже есть такие онолитеги, пожалуйста общайтесь с ними больше. А если у вас вдруг их нет, обязательно попросите своего менеджера нанять хотя бы одного. Общение с онолитегами -- одно удовольствие.

До скорых встреч!

вторник, 29 июля 2008 г.

Темп и поток

Дорогой блог!

Прости, что я давно не писал тебя. Это все потому что вещи вокруг меня происходят очень быстро. Сегодня, дорогой дневник, я расскажу тебе про поток.
Мой менеджер знает, что я и другие программисты работают по сорок часов в неделю. Мы честно приходим к 10.00 и уходим не раньше 19.00, а обедаем не больше часа в день. Мы хорошие программисты и не обманываем менеджера.
Но есть разные люди, они не плохие, дневник, но отвлекают нас и мешают нам работать восемь часов. Эти люди отвлекают нас по-разному: они звонят нам по телефону, говорят с нами или не с нами, но мы все равно слышим, или они говорят нам сделать что-то другое, потому что тоже наши менеджеры, или пишут нам в асю. Вот, они нас отвлекают и я и другие программисты не можем работать сорок часов в неделю с десяти до семи. Мне очень грустно, дорогой блог, потому что я хочу приносить пользу и быть хорошим, а мне не дают этого делать.
А еще я заметил вот какую штуку. Утром я могу делать много разных вещей. Я могу писать программы, писать тесты, исправлять ошибки, учиться новым интересным предметам и быстро отвечать на вопросы. Вот сколько всего я могу, и даже еще больше. А вечером я обычно могу только писать тесты и программы, но и то не всегда.
Умные дяденьки, одного из которых зовут Денис Зарин, когда-то рассказывали мне, что есть такая штука поток, только они называли его флоу, наверно по-английски.
Поток -- это когда программист заниматеся только чем-нибудь одним и ни на что не отвлекается. А если у программиста звонит телефон или с ним начинает говорить другой программист или менеджер или аналитик, он выходит из потока. Наверно это как будто программист ныряет в речку или море и смотрит на красивых рыбок и кораллы. Если программист нырнул глубоко, он может много чего увидеть и работает очень быстро и хорошо, а если не нырнул, то ничего не увидит и будет плохо работать.
Вот, и я теперь знаю, что утром нырять в поток у программистов получается лучше, чем вечером, и что програмиста очень легко выдернуть из потока.

Дорогоуважаемые программисты! Помните про свой поток и будьте всегда в нем. Я желаю вам, чтобы вы одинаково глубоко ныряли утром, днем и вечером и чтобы вас оттуда не выдергивали, когда вам этого не нужно и не хочется.

До скорых встреч!

PS Дорогой дневник, мне еще кажется, что поток бывает не только в программировании, а еще в самой жизни. И еще мне кажется, что я сейчас очень сильно в него нырнул.

вторник, 22 июля 2008 г.

Дорогой блог!

Сегодня я расскажу тебе о проектах. Проект -- это такая штука, которой все занимаются на работе. Работы тоже бывают разные, и на одних работах все занимаются только одним проектом, а на других работах все занимаются разными проектами. А еще проекты можно вести, сдавать и срывать, но это грустно и я не буду писать об этом.
У меня на работе есть один проект, который понимал только один программист, но он давно уволился, а теперь я должен понимать, но не понимаю. Этим проектом никто не хочет заниматься, потому что он неинтересный и у всех есть другие дела.
А еще у меня на работе есть другой проект, который тоже непонятный и сложный. Но зато его делает один интересный человек, и еще там менеджером тоже интересный человек. И поэтому этот проект делать интересно.
А третий проект у меня на работе самый интересный, и его делают тоже интересные люди, и там интересный второй программист и третий программист и архитектор и менеджер. И я каждый день узнаю что-то новое, и мне нравится мой третий проект. А первый проект мне не нравится, потому что я не узнаю ничего нового, а только использую старые инструкции и руководства.

Дорогоуважаемые программисты! Я хочу вам пожелать, чтобы все проекты, которые вы работаете на работе, были интересными. И чтобы люди, которые вместе с вами работают эти проекты тоже были интересными.

Дорогоуважаемые менеджеры! Я от всей души желаю вам, чтобы вы спрашивали программистов, какие проекты им интересны, а какие совсем не интересны. И еще я желаю, чтобы все ваши проекты были интересными для всех программистов и аналитиков и архитекторов и других людей, которые в них работают.

До скорых встреч!

четверг, 17 июля 2008 г.

Аналитики

Дорогой блог!

Сегодня я хочу поделиться с тобой мыслями об аналитиках.
Как однажды сказал Дмитрий Дзюба, аналитик -- это такое странное существо, которое бегает с выпученными глазами и говорит на непонятном языке.
У нас в отделе работает один аналитик. Дневник, не подумай пожалуйста, что он плохой. Он занимается тем, что по туманным и неясным требованиям заказчика составляет предельно ясные и понятные описания программ, которые надо будет написать.
А еще у нас есть архитектор, который тоже разбирается в туманных и неясных требованиях и по ним рисует красивые схемы с серверами, армами и параметрами соединений.
Сегодня аналитик мне сказал, что в одной очень серьезной организации, где будет работать моя программа, нужно сразу две версии программы: одну специальную для этой организации и еще одну для других организаций. Я ему поверил, потому что я послушный программист и хороший, и стал делать вторую программу. А еще я поговорил с архитектором, и он мне сказал, что эти две программы на самом деле одна программа, и я очень расстроился. А потом мне сказали, что я не должен был слушать аналитика. Дорогой дневник, как страшно становится жить! Теперь я больше не могу верить аналитику, а могу верить только архитектору и другим программистам. А вдруг они меня тоже хотят обмануть? Что же мне делать, дневничок?

Дорогоуважаемые программисты! Пожалуйста будьте внимательны и проверяйте слова аналитиков! Аналитики коварны и говорят на языке заказчика. А еще аналитики иногда не очень хорошо разбираются в требованиях и их работу приходится делать программистам и архитекторам. Удачи вам и хороших аналитиков.

До скорых встреч!

Дорогой блог!

Я очень рад, что завел тебя! Я верю, что ты станешь мне настоящим другом и поможешь мне глубже понять себя, приобрести новых друзей и еще больше сблизиться со старыми.
Я начинаю эту новую страничку в своей интернет-жизни, зная, что у меня уже есть друг -- ты, мой дневник.
А сейчас прости, мне пора дальше превращать свой мозг в активную биомассу на благо компании.
Я скоро вернусь, не скучай, дневник :)