На хабре опубликована замечательная статья с историей развития библиотек логирования Java.
К сожалению, теме повторного использования кода в JSP и других инструментах разметки уделяется крайне мало внимания. В результате, JSP в большинстве проектов представляют собой нагромождение плохо структурированных тэгов с большим количеством избыточного и повторяющегося кода. В этой статье я попытаюсь исправить ситуацию.
Node.js в ближайшие несколько лет станет доминирующей технологией в области WEB-разработки.
Решающим фактором станет единый язык (Java Script) для написания клиентской и серверной части приложения. Как следствие, снижение требований к квалификации программиста. Как следствие, более дешевая рабочая сила. Как следствие, уменьшение затрат на разработку.
Это мой прогноз. Я его записал, чтобы потом сказать: «Я же говорил!»
Бывает, к нам приходят люди которые не имеют опыта программирования на Java, но имеют опыт программирования на C++. Синтаксис Java основан на синтаксисе C/C++, кроме того C++ является объектно-ориентированным языком. Поэтому, переучивание не кажется слишком сложным. Однако, C++ допускает разработку как в ОО-, так и в процедурной парадигме. Распознать, владеет ли человек C++ как ОО-языком не простая задача. Для этого был придуман вопрос, ответ на который гарантирует прием на работу в нашу компанию (шутка). Вопрос звучит так: «Что такое виртуальные функции в C++?» Еще никто не ответил. В лучшем случае люди вспоминают про абстрактные функции, а это совсем не то.
Очень часто в реальной (и не только) жизни возникают отношения “многие ко многим”, обладающие атрибутами. Еще раз: отношение обладает атрибутами. тогда для определения отношения в Java создается специальный класс.
Читать далее…
Однажды я получил новый уровень изоляции транзакций в MS SQL Server, который позволяет запретить всем параллельным транзакциям выполнять любые запросы к БД.
Читать далее…
Сижу на работе один, заняться нечем. Вот и подумал, а не написать ли руководство для крутых прогеров. Освоив это руководство, Вы сможете смело заходить на любые прогерские форумы и гнобить тамашних посетителей еще не таких крутых прогеров как Вы.
Читать далее…
При проектировании русскоязычных интерфейсов важно помнить следующее правило: ни в коем случае, ни при каких условиях, категорически нельзя использовать слова “слать”, “послать”, “переслать” и их производные.
В любой книге, посвященном экстремальному программированию, вы найдете понятие стоячее собрание (stand-up meeting). “Стоячее” собрание — это короткое собрание, которое проводится раз в день и позволяет понять как у кого идут (или не идут) дела. Так же простейший способ синхронизации работы. Почему “стоячее”? Потому что все участники собрания стоят, это обеспечивает его краткость.
Читать далее…
Коллекции или контейнеры — это классы позволяющие хранить и производить операции над множеством объектов. Коллекции используются для сохранения, получения, манипулирования данными и обеспечивают агрегацию одних объектов другими.
Во многих языках программирования (Java, C, C++, Pascal) единственным встроенным в язык средством хранения объектов являются массивы. Однако, массивы обладают значительными недостатками. Одним из них является конечный размер массива, как следствие, необходимость следить за размером массива. Другим — индексная адресация, что не всегда удобно, т.к. ограничивает возможности добавления и удаления объектов. Чтобы избавиться от этих недостатков уже несколько десятилетий программисты используют рекурсивные типы данных, такие как списки и деревья. Стандартный набор коллекций Java служит для избавления программиста от необходимости самостоятельно реализовывать эти типы данных и снабжает его дополнительными возможностями.
Читать далее…
