Tag Archives: programming

Tests shouldn’t mirror the application

Some time ago I’ve created a suite of (FitNesse) acceptance tests for the app we are working on. Some of them were of the form of: Given that a customer exists with customer name "John" Given that a search results page is displayed for search criteria customer name "John" Then at least one one customer should be displayed Our [...]
Posted in Uncategorized | Also tagged , | Leave a comment

Some programmer delusions

It’s 21st century, but these delusions born in ages when editors were crude are still out there. Formatting with spaces is better than formatting with tabs. Because then the text would look the same for all readers in all editors. I’ve seen people who use 8 spaces for indentation and I’ve seen people who say that one space [...]
Posted in Uncategorized | Tagged | Leave a comment

225

А вы знаете, что BEA AquaLogic Data Service Platform использует в своих запросах антисемитские join’ы?
Posted in Uncategorized | Tagged | Leave a comment

224

Работаю с админкой AquaLogic Service Bus и понимаю, насколько даже самая базовая возможность писать скрипты облегчила бы мне жизнь. Удивительно, что никому в голову еще не пришло сделать админку с возможностью записывать и воспроизводить действия.
Posted in Uncategorized | Tagged | Leave a comment

213

Цитата из одного поста: I’ve been programming in Java for more than ten years. I have studied a lot of languages, and I keep learning new ones just out of curiosity. I even use some of these exotic languages here and there as the need warrants. Yes, some of these feel really good to program in [...]
Posted in Uncategorized | Tagged | Leave a comment

192

В Eclipse JDT есть такая полезная функция – автоформатирование по Ctrl+Shift+F. Но с ней связан один недостаток – в то время как она отлично исправляет отступы, с переносом строк у форматтера проблемы. В частности, регулярно возникает ситуация, когда аргумент а-ля final Object context оказывается разбит на две строки. В результате получается нечитабельный конгломерат вроде: public IAdvancement.IInstance [...]
Posted in Uncategorized | Also tagged | Leave a comment

191

Чем дальше читаю Practical Common Lisp, тем больше понимаю, что он не для меня. Слишком в нем много легаси; Scheme оставил гораздо более приятные впечатления. Поэтому, учитывая, что реальное что-то на лиспе писать шансов у меня немного, остановился на Scheme.
Posted in Uncategorized | Tagged | Leave a comment

189

Компании очень любят писать про свои core values, ну там, quality, effectiveness, knowledge sharing, дальше по стандартному списку… Было бы здорово, если б рядом с этими values писали еще и anti-values. Например, we don’t care about using modern & effective technologies, we don’t use an individual approach to every employee and we don’t strive to [...]
Posted in Uncategorized | Tagged | Leave a comment

188

Неужели некоторые люди всерьез думают, что class="height28" – это лучше, чем style="height: 28px"? Прямо CSS-каргокульт какой-то.
Posted in Uncategorized | Tagged | Leave a comment

187

Нашел эпический тред про С++, быдло, программирование и вообще за жизнь. Рекодмендуется к прочтению всем начинающим программистам. Я лично узнал много нового и даже слегка изменил взгляд на свою профессию :)
Posted in Uncategorized | Tagged | Leave a comment

186

Читаю фак по расширению Java-коллекций от Google; ребята жгут: Why build on Java 5, instead of 1.4? Because we hate Java 1.4. Just kidding (but we do).
Posted in Uncategorized | Tagged | Leave a comment

182

Вот, давеча походил по собеседованиям в три крупные компании, делюсь впечатлениями. Luxoft HR не понравились совершенно. Особенно разозлило, когда утром, выходя на работу, я получил от них звонок, что вот, мол, прямо сейчас у меня должно быть телефонное собеседование с заказчиком, о котором меня вчера должна была предупредить другая HRщица (причем, таки да, я потом откопал в [...]
Posted in Uncategorized | Tagged | Leave a comment

181

Похоже, идет очередная волна программистской блогосферы. Теперь в фокусе – Erlang, D и Scala.
Posted in Uncategorized | Tagged | Leave a comment

180

В догонку к предыдущему посту. Возьмем тот же самый MVC. Очень хороший паттерн, безусловно. Но разве Model, View и Controller – единственные части, которые стоит разделять? Вот, например, список уровней веб-приложения, которые, по-хорошему, должны быть четко разделены: 1) Оформление (html, css, js-эффекты) 2) Разметка (html, css) 3) Статическое содержимое (html, message bundles) 4) Динамическое содержимое (html + forms) 5) Связь клиент-сервер (plain http, ajax) 6) Система генерации [...]
Posted in Uncategorized | Tagged | Leave a comment

179

Преклонение перед дизайн-паттернами порой ставит меня в тупик. То есть, да, это хорошо, если разработчик может организовать свой код в легко понимаемые и расцепленные структуры, но разве ограниченный набор, описанный в GoF (и последователях) – это предел возможностей? Особенно удивляют долгие рассуждения когда какой паттерн применять и какие у них есть достоинства и недостатки. Не [...]
Posted in Uncategorized | Tagged | Leave a comment

177

Поучаствовал в конкурсе компании Epam, выиграл книжку по JavaServer Faces, читаю. Начинаю ценить, когда фреймворк спроектирован так, чтобы хотя бы не мешать программисту. Intershop Enfinity – глючное убожество.
Posted in Uncategorized | Tagged | Leave a comment

176

Каждый ролевик рано или поздно доходит до идеи написания своей системы. Напрашивается аналогия с haskell и написанием туториала по монадам.
Posted in Uncategorized | Also tagged | Leave a comment

173

Был .NET 3.0, теперь выходит .NET 3.5… Microsoft определенно напоминает некоторую другую компанию :)
Posted in Uncategorized | Also tagged | Leave a comment

168

Понравилось :) Отсюда. Sometimes, the test justifies the means The pupil asked two master programmers: “I cannot test this code without mocking and violating encapsulation. What should I do?” One master programmer answered: “Mocking is bad, and you should never violate encapsulation. Rewrite the code so you can test it properly.” The other master programmer answered: “Mocking is good and testing trumps encapsulation.” The pupil, [...]
Posted in Uncategorized | Tagged | Leave a comment

153

Очередная статья на dzone про “красивые” URL. И в очередной раз – непонимание принципов работы современного интернета. По пунктам: 1. Юзабилити Когда вы последний раз вручную меняли URL? А тетя-Маша-бухгалтер? Возможность вручную влезть в строку адреса оценят разве что самые маргинальные гики, да и те будут ею пользоваться раз на месяц, т.к. любой вменяемый сайт позволяет аналогичную [...]
Posted in Uncategorized | Tagged | Leave a comment

147

Scala. 25 строк кода. Мне страшно представить, во что бы это вылилось в Java.
Posted in Uncategorized | Also tagged | Leave a comment

145

Пока что лучшее определение для монад в ФП, которое я для себя выработал – это “значение, которое знает, как применять к себе функции”.
Posted in Uncategorized | Tagged | Leave a comment

135

Сейчас будет субъективщина. Пишу по личным ощущениям. Когда я только начинал кодить на Java (1-2 года назад), шел (заканчивался, точнее) бум IoC/AOP – Spring, PicoContainer, Avalon, AspectJ, итд. Ну и Hibernate тоже то и дело вспывал. Чуть позже ненадолго фокус заняли веб-фреймворки. Потом – динамические языки. А сейчас – какое-то странное затишье. Наверное, все в [...]
Posted in Uncategorized | Also tagged | Leave a comment

133

Сейчас на работе ежедневно сталкиваюсь с такими монструозностями, как Websphere Commerce и Intershop Enfinity. Это такие навороченные веб-магазины, ориентированные на расширение и кастомизацию. Потрясающе поучительные системы – рассеивают всякие сомнения о том, зачем и как пишут программы Большие Корпорации. Зачем – ну понятно, чтобы Загребать Бабло. Других причин написания нет. Опенсорс-проекты пишутся чтобы Улучшить Мир. [...]
Posted in Uncategorized | Tagged | Leave a comment

110

Цитата из статьи 11 ways to motivate geeks: 11. Offer Free Food…Intermittently. Never underestimate the power of free food. I can’t offer any rational explanation, but for geeks, even those making sizeable incomes, free food offers major support to motivation development, far more than an equivalent amount of cash. А ведь он прав! И правда удивительно :) Только вот [...]
Posted in Uncategorized | Tagged | Leave a comment

109

Будь проклято все, что начинается с <% !!! Сегодня видел внутри JSP нечто вроде такого:
Posted in Uncategorized | Tagged | Leave a comment

107

Sunовские стандарты кодирования для java приводят меня в тихий ужос. Человек, придумавший ставить { на одной строке с оператором, 100% втайне ненавидел программистов. К сожалению, большие корпорации очень часто ведутся на самые идиотские стандарты и это правило просочилось в сановские конвенции. Плюс, нелюбовь сановских программистов к префиксу this породила кучу уродливейших _field, mField, aField, theField [...]
Posted in Uncategorized | Tagged | Leave a comment

99

Под катом – пример того, как функциональный стиль хавает мой моск. Есть лист кнопок. Нужно отфильтровать их по типу. Недолго думая, написал такой вот код: final Predicate predicate = new Predicate() { public boolean evaluate(final Object button) [...]
Posted in Uncategorized | Tagged | Leave a comment

83

А у нас в квартире газ, а у вас? Тест Джоэля для компании где я работаю. Do you use source control? Can you make a build in one step? Do you make daily builds? Do you have a bug database? Do you fix bugs before writing new code? Do you have an up-to-date schedule? Do you [...]
Posted in Uncategorized | Tagged | Leave a comment

82

Некоторые резюме говорят сами за себя. Например, если в резюме на позицию Java-разработчика кандидат пишет “опыт работы в Windows XP, 2000, 98, 95, 3.1, MS-DOS 6.22, 6.0, 5.0, Linux Mandrake, Linux Gentoo, FreeBSD”, то он скорее всего или неквалифицирован, или не умеет составлять резюме. Если он неквалифицирован, то тут уже ничего не поделаешь. Если же [...]
Posted in Uncategorized | Also tagged | Leave a comment

76

Читаю про Scala. Язык моей мечты. Я долго пытался высмотреть такой вот язык для Java-платформы, но все никак не находил – то примитивные типы оставались, то еще какая-нибудь гадость. Но и у этого есть один недостаток – переменные (и все остальное) объявляются не как “int value”, а как “value : int”. Я привык именовать переменные [...]
Posted in Uncategorized | Also tagged | Leave a comment

73

Этот мир определенно общается со мной :) Только запостил пост про джаву и ООП – сразу же наткнулся на объяснение почему джавовское ООП ацтойное и вообще. Написано много и красиво (я не шучу :)), и основная суть такая – в Java нельзя передавать функцию как переменную, а в Python можно, и в Ruby можно, а [...]
Posted in Uncategorized | Tagged | Leave a comment

71

Я люблю Wicket. В первую очередь за то, что это настоящий, хардкорный ООП, со всевозможными паттернами. Пару месяцев назад у меня состоялся разговор с одногруппником-дельфистом. Тогда я не смог ему объяснить в чем разница между программированием на Java и программированием на Delphi. Да и сейчас не смог бы наверное. Я попробовал сказать, что он (Java) заставляет [...]
Posted in Uncategorized | Also tagged | Leave a comment

58

Только что на JRoller’e прочел заметку в блоге о кнопке “Назад” в браузере. Раньше как-то об этом не думал, а ведь и правда – в современном вебе эта кнопка устарела. Все (почти) крупные и посещаемые сайты имеют динамический контент, значит просто подгружая из кеша предыдущую страницу юзер получает устаревшую инфу. Правильным было бы определять работу [...]
Posted in Uncategorized | Tagged | Leave a comment

WebWork и Wicket

Posted in Uncategorized | Tagged | Leave a comment

51

У некоторых людей явно превратное представление о том, как должен работать веб. Как минимум, не такое как у меня. Я ожидаю от странички что если я кликнул на ней кнопку, то то что я ввел в поля принялось во внимание и что-то изменилось. Если я кликнул на линку то то что я ввел в поля [...]
Posted in Uncategorized | Tagged | Leave a comment

49

Смотрю сейчас сайты по поиску работы и сердце кровью обливается. Junior J2EE девелопер – $1000-$2000!!! Плюс возможность релокации в штаты!!! Омг, ну зачем они постят такие объявы СЕЙЧАС, а не три месяца назад когда я работу искал?! Надо будет обязательно поговорить о повышении зарплаты :) Кстати, зарплаты java-программистов на сайтах работы растут довольно резво. Полгода назад [...]
Posted in Uncategorized | Also tagged | Leave a comment

C# 3.0

C# начинает серьезно обходить Java по удобству программирования. В версии C# 3.0, например, появятся такие фичи:
Posted in Uncategorized | Tagged | Leave a comment

Wicket

ДА!!! ЧЕЛОВЕК ОПЯТЬ ПОБЕДИЛ МАШИНУ!!! А загвоздка вот в чем была: я связываю страницу MainPage с путем “/MainPage” с помощью метода mountBookmarkablePage(”/MainPage”, MainPage.class). Таким образом, все ссылки на эту страницу приобретают человеческий вид типа http://localhost:8080/wickettest/app/MainList. Но! Пока я не заменил в web.xml <url-pattern>/app</url-pattern> на <url-pattern>/app/*</url-pattern> Tomcat был не в курсе что эту ссылку нужно не самостоятельно [...]
Posted in Uncategorized | Tagged | Leave a comment

Tapestry и Tomcat

Начал писать проект с помощью Tapestry и сразу же наткнулся на странную багу. После деплоя приложения Томкат хватает несколько библиотек (.jar-ы от tapestry и hivemind), делает на них lock и не отпускает даже по команде undeploy. То есть, выгрузить приложение без перезапуска Томката фактически невозможно, т.к. некоторые его файлы – те самые библиотеки – попросту [...]
Posted in Uncategorized | Tagged | Leave a comment

31

Нашел интересную статейку: http://www.javalobby.org/articles/outofbounds/. Автор рассказывает про ситуацию когда новый разработчик приходит в команду, смотрит на проект и начинает всем рассказывать где и как он сделан неправильно. И рассказывает, в общем-то, правильные вещи, не просто понтуется умными словами. Но проект не вчера и не за один день делался, пережил несколько смен технологий и находится в [...]
Posted in Uncategorized | Tagged | Leave a comment

29

Что мне не нравится в Java: 1) Генериксы через erasure а не reification. С одной стороны, можно понять что Sun жалко миллионов потерянных баксов несчастных пользователей, страдающих от несовместимости, но с другой – если все такими темпами и продолжать менять, то новые программисты будут просто идти на .net, в котором MS делает все что хочет и [...]
Posted in Uncategorized | Tagged | Leave a comment

SWT и AWT

По зрелом размышлении решил забить на SWT и юзать AWT/Swing. Хотя SWT мне кажется более цельным и продуманным, в нем нету таких нужных фишек, как, например, нормальных WinXP-шных плоских кнопкок и кнопок с рисунком и текстом. То есть, их можно сделать, но это долго и неинтересно :) В Swing, правда, JEditorPane оказался слабенький по части [...]
Posted in Uncategorized | Tagged | Leave a comment

Java

Проблема возникла.                        Нужно сделать таблицу такого типа с помощью SWT, или, в крайнем случае, AWT/Swing. То есть, с горизонтальными спанами ячеек. Причем таблица немаленькая – где-то 60х10 как минимум – то есть, со скроллингом и подобными делами. Подумав немного, решил что самый простой выход – влепить Browser и в нем нарисовать эту таблицу средствами HTML, а [...]
Posted in Uncategorized | Tagged | Leave a comment

SCJP

Наконец-то прислали сертификат из Sun. В конверте: 1) Небольшая пластиковая карточка размером с кредитку – на ней мое имя, название сертификации, логотип Sun и разные другие надписи 2) Альбомный листок формата чуть больше А4 на плотной бумаге с крупными надписями – очевидно, чтобы вставить в рамочку и повесить на стенку 3) Поздравительное письмо 4) Договор, который если я подпишу [...]
Posted in Uncategorized | Tagged | Leave a comment

SCJP

Долго думал писать сюда или нет, но таки напишу, может кому пригодится :) Сдал вчера экзамен на Sun Java Certified Programmer. 86% при проходных 51%. Наверное, если бы готовился интенсивнее, прошел еще с десяток mock exam’ов и все-таки разобрался до конца с потоками, то получил бы 90-95%, а то и все 100. Хотя эти проценты [...]
Posted in Uncategorized | Tagged | Leave a comment