Компания Agitar Software предлагает довольно любопытную метрику для оценки качества программного кода. Формула с недвусмысленным названием CRAP позволяет оценить, воскликнет ли разработчик «Oh crap!» узнав, что за код ему выпало счастье поддерживать.
webus @webus
Пользователь
Программирование: Практики которые я возьму с собой
3 min
4.3KЯ имею довольно небольшой опыт работы в сфере разработки программного обеспечения (всего 6 лет), но я уже накопил ряд полезных и правильных практик (по моему скромному мнению), которые можно использовать при создании программного обеспечения.
В основном описаны моменты которые касаются поддержки процесса разработки программного обеспечения, не затрагиваются темы планирования хода выполнения работ. Также не затронут процесс программирования и полезные плюшки для него (например расслоение системы на уровни, использование шаблонов проектирования). Но все ниже приведенное было и остается полезным для меня лично, и я буду рад если и вам на что нибудь сгодится :)
В основном описаны моменты которые касаются поддержки процесса разработки программного обеспечения, не затрагиваются темы планирования хода выполнения работ. Также не затронут процесс программирования и полезные плюшки для него (например расслоение системы на уровни, использование шаблонов проектирования). Но все ниже приведенное было и остается полезным для меня лично, и я буду рад если и вам на что нибудь сгодится :)
+60
Виды тестирования и подходы к их применению
5 min
272KИз институтского курса по технологиям программирования я вынес следующую классификацию видов тестирования (критерий — степень изолированности кода). Тестирование бывает:
- Блочное (Unit testing) — тестирование одного модуля в изоляции.
- Интеграционное (Integration Testing) — тестирование группы взаимодействующих модулей.
- Системное (System Testing) — тестирование системы в целом.
+41
Java.next: Общие принципы языков нового поколения
7 min
9.7KTranslation
Java.next: Общие принципы языков нового поколения
Это первая часть серии статей насчёт Java.next. В первой части я собираюсь рассмотреть общие принципы, которые разделяют языки Java.next.
Я выбрал четыре языка, которые вместе и назвал «Java.next»: Clojure, Groovy, JRuby, and Scala. На первый взгляд, эти языки совершенно разные. Clojure — это Lisp. Groovy — это «почти Java». JRuby обладает красотой Ruby, и использует мощь Rails. Scala, в отличие от других языков, настаивает на том, что нам нужна статическая типизация.
+47
Марш против RDBMS или проекты распределенных хранилищ (key-value stores)
5 min
15K
+46
Riak — веб-ориентированная система хранения данных
9 min
32K
Немного статей на хабре посвящены новому движению в IT индустрии — NoSQL. Я решил изменить это и написал статью-перевод-обзор об одном из докладов с конференции NoSQL прошедшей 5 октября в Нью-Йорке. В этой статье будет говорится о системе Riak, с которой мне довелось иметь счастье работать последнее время.
Что такое Riak? Многие модные слова популярные сейчас, можно отнести к Riak. Riak — это
+68
Dependency injection для Scala: Cake Pattern
4 min
15KЯ совсем недавно начал изучать Scala. Для тех, кто еще не в курсе, что это за язык, небольшая выдержка с официального сайта:
Scala — лаконичный, элегантный и статически типизированный язык программирования, который сочитает в себе возможности обьектно-ориентированного и функционального языка. Scala полностью совместима с Java.
Сегодня я хотел бы показать вам, как, используя богатые выразительные способности этого языка, решить проблему, актуальную для любого более-менее крупного проекта, а именно работу с зависимостями компонентов или dependency injection. Последние несколько лет я использовал spring ioc для решения этой проблемы, однако у этого фрэймворка есть несколько недостатков, самый очевидный из которых это сборка приложения из компонент в runtime и наличие xml-дескрипторов (да, конечно можно использовать и autowiring и аннотации, но и у этих возможностей есть свои серьезные проблемы).
Scala — лаконичный, элегантный и статически типизированный язык программирования, который сочитает в себе возможности обьектно-ориентированного и функционального языка. Scala полностью совместима с Java.
Сегодня я хотел бы показать вам, как, используя богатые выразительные способности этого языка, решить проблему, актуальную для любого более-менее крупного проекта, а именно работу с зависимостями компонентов или dependency injection. Последние несколько лет я использовал spring ioc для решения этой проблемы, однако у этого фрэймворка есть несколько недостатков, самый очевидный из которых это сборка приложения из компонент в runtime и наличие xml-дескрипторов (да, конечно можно использовать и autowiring и аннотации, но и у этих возможностей есть свои серьезные проблемы).
+9
Создание расширения для Google Chrome
8 min
119K
Для работы с расширениями вам понадобится переключить канал обновлений на Dev или Beta.
+88
HyperGraphDB — база данных на основе графов
3 min
8.7K
Наверное, не многие знают о существовании такого типа баз данных, как базы данных на основе графов (graph db). Ранее в NOSQL среде была распространена всего одна система такого плана — Neo4j. Сегодня же к нам прибыло еще 2 — Infogrid и HyperGraphDB. О последнем и пойдет речь.
Как описывают сами создатели свою систему:
«HyperGraphDB — это расширяемая, портативная, распределенная, встраиваемая система общего назначения со свободным (open-source) механизмом хранения данных. Эта система разработана специально для проектов использующих возможности искусственного интеллекта и семантического вэба и может использоваться как встраиваемая, объектно-ориентированная база данных для проектов любого масштаба.»
+34
Web 3.0 — это мир, в котором обычный пользователь может стать программистом
4 min
4.1K
Многие согласятся, что эпоха Web 2.0 уже подходит к концу. Сегодня я расскажу вам о некоторых стартапах следующего поколения и предреку смерть некоторых Web 1.0 зубров. Прошлые несколько лет прошли под лозунгом «User generated content», следующие же — под двумя новыми:
- User generated applications.
- Platforms.
+29
Swarm: язык распределённых вычислений в облаке
1 min
1.7KГод назад Ян Кларк, известный как создатель распределённой сети Freenet, выступил с ещё одной революционной инициативой. Он предложил создать новый язык программирования для распределённых вычислений, логика которого будет идти «не от данных, а от вычислений», чтобы любые написанные на таком языке программы можно было естественном образом распараллеливать по неограниченному количеству процессоров и серверов. Это очень важная задача, если учитывать повсеместный переход на распределённые вычисления. И до сих пор нет нормального фреймворка для создания распределённых программ.
Як Кларк сделал на базе Scala 2.8 первый прототип языка Swarm. Вот исходные коды и инструкция по установке.
Як Кларк сделал на базе Scala 2.8 первый прототип языка Swarm. Вот исходные коды и инструкция по установке.
+17
Введение в объектно-ориентированные базы данных
9 min
59K
Применять или не применять объектно-ориентированные системы управления базами данных (ООСУБД) в реальных проектах сегодня? В каких случаях их применять, а в каких нет?
Вот преимущества использования ООСУБД:
- Отсутствует проблема несоответствия модели данных в приложении и БД (impedance mismatch). Все данные сохраняются в БД в том же виде, что и в модели приложения.
- Не требуется отдельно поддерживать модель данных на стороне СУБД.
- Все объекты на уровне источника данных строго типизированы. Больше никаких строковых имен колонок! Рефакторинг объектно-ориентированной базы данных и работающего с ней кода теперь автоматизированный, а не однообразный и скучный процесс.
В статье описано все, что требуется для начала работы с ООСУБД db4o.
+74
Hivext Platform — облачная платформа для разработки Интернет приложений. Бета тестирование
2 min
921
Полтора года назад на хабре познакомились два увлеченных своим делом, разработчика, которые обсуждали статьи друг друга. Пообщавшись более плотно, осознали что им не хватает продукта, который позволял бы проще, гибче и быстрее разрабатывать веб-приложения. Так зародилась идея разработки платформы для разработчиков. Прошло чуть больше года проектирования и разработки.
На данный момент мы имеем что показать и дать вам пощупать наш продукт.
+52
Доктор Хаус — онлайн и без рекламы
1 min
1.1KСделал небольшой и очень простой сайт с единственной целью — дать всем желающим смотреть Доктора Хауса в онлайне и в достойном качестве. Сайт не подразумевает оплаты, рекламы и тому подобного, т.к. изначально делал для себя.
Поток 1500 Кбит, у меня на ноуте в полноэкранном режиме качество не вызывает отторжения.
house.gushin.su
Поток 1500 Кбит, у меня на ноуте в полноэкранном режиме качество не вызывает отторжения.
house.gushin.su
+177
Все о 960gs — отличном css-фреймворке для построения модульных сеток
6 min
54K
Я хочу дать исчерпывающее описание замечательному фреймворку для построения модульных сеток 960gs. Недавно где-то в комментариях сказали, что 960gs сложнее в понимании, чем blueprint, что меня удивило. Я не хочу заниматься сравнением этих фреймворком, хотя бы потому, что они выступают в разных весовых категориях, однако, для построения модульной сетки ничего легче и проще в понимании, чем 960gs я не видела.
+97
А вы готовы перейти на Google Chrome? — 30 незаменимых расширений для Хрома
7 min
25KTranslation

На протяжении уже 5-6 лет я использую только Firefox и никогда не думал, что захочу выбрать что-то другое. Firefox — отличный браузер, а делают его таковым все те тысячи расширений, которые каждый может скачать бесплатно. Можно найти расширение для чего угодно. Есть лишь один существенный недостаток — Firefox значительно медленнее, чем Chrome и сжирает больше ресурсов компьютера, чем остальные браузеры.
Один мой знакомый в очередной раз предложил попробовать Хром и я решил, что стоит рискнуть. На этот раз моя цель — проверить достаточно ли хороших и качественных расширений у Хрома, чтобы перейти на него окончательно.
В этой статье я попытаюсь ответить на вопрос — могут ли дизайнеры, веб-разработчики, SMO-шники, SEO-оптимизаторы безболезненно перейти на Chrome. Есть ли расширения, которые могут послужить равноценной заменой на Хроме таким вещам как: Firebug, Webdeveloper, Color Picker, SEO для Firefox, Alexa Ranks, средства для отладки?
+162
Печать книг по программированию в домашних условиях
1 min
28KЧестно говоря, никогда не любил читать техническую литературу с экрана. Художественную — сколько угодно — читал и с компа и с телефона и, как вот уже лет 5-6, с КПК (хотя, бесспорно, всегда отдавал предпочтение книгам бумажным). А вот техническую — хоть ты тресни — только с бумаги воспринимаю.
Печатать на A4 — может и клево, но непонятно как потом скреплять, степлер не берет, дырокол тоже ругается, прочих средств под рукой обычно нету.
Печатать на A4 — может и клево, но непонятно как потом скреплять, степлер не берет, дырокол тоже ругается, прочих средств под рукой обычно нету.
+144
Физика высоких температур
1 min
1.2KВсе уже наверняка обратили внимание, что в PostgreSQL 8.4 появился новый режим работы базы данных: Warm standby. При нём во время работы базы данных Write-Ahead логи (WAL) транслируются на подчинённую базу данных, на которой в реальном времени применяются, как если бы это происходило на основной системе. Поэтому, если основная база данных по какой-то причине (молния/торнадо/третья мировая война/другие стихийные бедствия) выйдет из строя, можно будет мгновенно переключиться на подчинённую базу данных (данные в которой будут достаточно актуальны по сравнению с основной базой) и использовать её дальше.
Но, к сожалению, «тёплый стэндбай» подразумевает, что на подчинённой системе непрерывно происходит процесс восстановления базы данных; из чего следует, что пока основная база жива, подчинённой базой пользоваться нельзя.
Если вы читаете хотя бы блог depesz (не говоря уже про коммит-логи), то вы уже знаете, к чему я веду; если же нет, то… 19-го декабря прошлого года в разрабатываемую версию PostgreSQL 8.5 была добавлена функциональность Hot standby. Теперь, при настройке репликации WAL, подчинённая база данных тоже может использоваться для запросов SELECT (и только SELECT, по понятным причинам). Если раньше второй сервер со второй базой данных простаивал в ожидании форс-мажора, и админу приходилось краснеть перед менеджерами при вопросах об эффективности использования оборудования — то теперь этот сервер, при правильном построении логики приложений, поможет разгрузить основную базу данных.
Подробности о функционировании Hot standby можно прочитать в соответствующей статье из документации разрабатываемой версии PostgreSQL.
Но, к сожалению, «тёплый стэндбай» подразумевает, что на подчинённой системе непрерывно происходит процесс восстановления базы данных; из чего следует, что пока основная база жива, подчинённой базой пользоваться нельзя.
Если вы читаете хотя бы блог depesz (не говоря уже про коммит-логи), то вы уже знаете, к чему я веду; если же нет, то… 19-го декабря прошлого года в разрабатываемую версию PostgreSQL 8.5 была добавлена функциональность Hot standby. Теперь, при настройке репликации WAL, подчинённая база данных тоже может использоваться для запросов SELECT (и только SELECT, по понятным причинам). Если раньше второй сервер со второй базой данных простаивал в ожидании форс-мажора, и админу приходилось краснеть перед менеджерами при вопросах об эффективности использования оборудования — то теперь этот сервер, при правильном построении логики приложений, поможет разгрузить основную базу данных.
Подробности о функционировании Hot standby можно прочитать в соответствующей статье из документации разрабатываемой версии PostgreSQL.
+32
Divine Project – автоматическое создание сайта из PSD шаблона
1 min
12K
Это мой первый пост, а потому попрошу сильно не ругать =)
Я думаю, кто-то из вас рано или поздно сталкивался с задачей сделать для своего сайта уникальный дизайн, но, увы, это не так просто осуществить, как хотелось бы. Но с помощью DIVINE всё становиться гараздо проще. Дизайнерам теперь не нужно владеть HTML, CSS и понятием о том, как устроены темы для WordPress
+31
Вращение предметов без флэш
2 min
10KВсем привет.
Хочу предоставить вам на суд плагин для jQuery, позволяющий реализовать трехмерный показ предметов (например, телефонов или ноутбуков в каталоге интернет-магазина).
Пожалуй, все встречали подобные инструменты основанные на технологии flash. Однако я считаю, что её использование здесь не к чему. Поэтому потратив несколько часов я реализовал подобный функционал на javascript в виде плагина к jQuery.
Хочу предоставить вам на суд плагин для jQuery, позволяющий реализовать трехмерный показ предметов (например, телефонов или ноутбуков в каталоге интернет-магазина).
Пожалуй, все встречали подобные инструменты основанные на технологии flash. Однако я считаю, что её использование здесь не к чему. Поэтому потратив несколько часов я реализовал подобный функционал на javascript в виде плагина к jQuery.
+88
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity