Showing posts with label development. Show all posts
Showing posts with label development. Show all posts

Sunday, April 10, 2011

Very simple EventBus/PubSub implementation (Java)

While investigating and learning usage of CQRS parrtern I've found that there is no any simple event bus implementation for Java (exept this one, but it do not had sources).

So I've used idea of "Java Programming Tip: Building Your Own Event Bus" blog post, and made my own implementation.

It allows very-very simple and not optimized way of publishing/subscribing on events with consentation on simplicity.

Tuesday, June 29, 2010

C#: Invoke method from null-valued variable?

Как-то не задумывался, что конструкции по типу:

A a = null;
a.SomeMethod();


могут не вызывать NullReferenceException, а отрабатывать и выполнять какой либо функционал или даже возвращать значения.

Как?

Методы-расширения:

public class A { }
public static class AExt {
public static void SomeMethod(this A a) {
Console.WriteLine("Invoked with "+(a==null?"null":a.ToString()));
}
}


Это конечно хорошо, но имхо это нарушает "читабельность" - лучше явно проверять и обрабатывать null-значения, чем прятать обработку в методы расширения.

Но факт остается факт - у переменной со значением null можно вызвать метод :) Можно спрашивать на собеседованиях чтоб оценить реакцию :)

Wednesday, June 2, 2010

Ищем соратника

Сегодня разместил вакансию на developers.org.ua. Интересно, без дополнительных вложений будут ли обращаться?

В целом конечно немного стремно искать "не по знакомым" - пока команда укомплектовывалась чисто друзьями, которых знаю уже довольно давно, но друзья-девелоперы рано или поздно заканчиваются.

В общем, ждем новых друзей в нашу дружную команду :)

Tuesday, April 27, 2010

GWT UiBinder - Separation of Concepts

Решил сделать репост очень интересной статейки о том, как шаг за шагом перейти от обычного HTML (или swing-like) к UiBinder-у.

Отличный материал для идеи, которая недавно пробегала - вместо скучных обычных докладов, провести что-то вроде группового мастер-класа. И как раз пошаговая разработка UI с UiBinder'ом думаю будет довольно интересной.

Saturday, April 24, 2010

C# 4.0: Небольшие малозаметные, но важные изменения

C# 4.0 вышел вместе с MSVS 2010 еще 12ого апреля. Уже довольно много статей о новых фичах вышло - о динамических типах и DLR, о параметрах и т.д. Но довольно много мелких изменений, который довольно слабо освещены, и о которых не стоит забывать.

Решил перечислить их с небольшими комментариями:


  • Во многие типы наконец-то добавили TryParse (TimeSpan, Enum, Guid).
  • Чуть проще работа со строками: Join'нить и Contact'ить можно все что IEnumerable, добавили String.IsNullOrWhiteSpace
  • Идея Enum'ов как флаги продолжила свою жизнь в виде Enum.HasFlag
  • Наконец-то не надо изобретать велосипед при копировании с одного потока в другой - System.IO.Stream.CopyTo
  • Теперь не надо писать конструкции типа:

    private MyType field;
    public Field { get { return field ?? (field = new MyType()); } }
    Вместо этого можно воспользоваться System.Lazy
  • Добавили System.Tuple<...> - вот этого часто не хватало. Определять свои классы лень только для того, чтоб вернуть два-три значения, а out-параметры не очень красивы.


Это в принципе именно полезные, но мало-заметные изменения. Полный список можно прочитать в этой статейке.

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


Sunday, October 11, 2009

Повышение продуктивности: средство само-контроля

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

И чтоб поставить все точки над “i” решил именно для себя поставить какую-то систему контроля какое приложение активно.

Быстрое гугление вывело на утилиту, на 80% выполняющую необходимые функции: ManicTime

Чем она удобна:

  1. Минималистический интерфейс, в то же время вполне eye-candy.
  2. Бесплатна
  3. Отслеживает не только сколько времени было проведено в той или иной программе, а и на каких сайтах (по доменам)
  4. Есть автоматическое отслеживание бездействия (отошел от компа)
  5. Возможность помечать “тагами” некоторые участки времени (“работаю”, “отдыхаю”) с различными отчетами по тагам.

Скриншотик с офф сайта:

В целом это одна из таких прог, которую, как мне кажется, необходимо иметь каждому, кто работает на дому.

Минус пока вижу в том, что недостаточно возможностей по просмотру результатов за неделю, месяц и автоматической расстановки “тегов”. Но выглядит очень привлекательно и потенциально.

Во всяком случае хороший шанс “посмотреть в глаза” реальности и увидеть сколько реально времени трачу на совершенно ненужные вещи. Вот в реальности бы…

ПС. Я никаким образом не связан с создателями программы.