Все потоки
Поиск
Написать публикацию
Обновить
1105.49

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Набор полезных утилит и библиотек мира .NET

Время на прочтение2 мин
Количество просмотров13K
Продолжаю серию постов о библиотеках и прогрмаммах этого мира. Крайне советую всем не знакомым посмотреть в сторону языка программирования Nemerle. У него есть все шансы стать таким же мейнстримом, как C#, F#, VB.NET. Тут все зависит от вас, как говорится. Вы задаете мейнстрим, а не корпорации. Итак, приступим.

SharpDevelop



Это прекрасная IDE для работы в проектах .NET. Скоро будет добавлена поддержка C\C++. Сейчас она есть, но частичная. IDE полностью бесплатна, поддерживает на данный момент C#/VB.NET/IronRuby/IronPython/F#/Nemerle(надо доустановить плагин)/ Boo. Среди типов проектов — абсолютно любые, включая ASP.NET, WPF, WCF с визуальными редакторами, подсказками. Есть встроенный рефакторинг, имеющий пока что малую часть функционала ReSharper. Вместе с плагином ThemeTool превращается в полноценную Visual Studio 2010 визуально (см. скриншот). Это то, что должен попробовать каждый разработчик .NET и иметь при себе. Ведь в отличии от Visual Studio инсталлятор этой программы занимает всего 20 мегабайт.
Читать дальше →

Полуавтоматическая конвертация лени в код

Время на прочтение7 мин
Количество просмотров6.6K
Всем доброго дня. Сегодня я хочу поговорить об автоматической генерации кода C#. Например, свойства в классах, описывающих сущности предметной области, обычно описываются по совершенно одинаковой схеме. И мне элементарно лениво писать для каждого примитивного свойства одинаковые конструкции. Немного спасает применение сниппетов и активных шаблонов, но когда приходит нужда что-то поменять в этой схеме, то приходится перелопачивать кучу кода. Так почему бы это однообразие не генерировать автоматически в процессе сборки?
В какой-то момент кинетическая энергия творчества ненадолго пересилила потенциальную энергию лени, и результатом этого стала маленькая библиотечка для автоматической генерации некоторых исходных файлов программы на основе внешних данных. Приглашаю под кат всех ленивых (в хорошем смысле этого слова) разработчиков на C#.
Читать дальше →

Рисование сеточных графиков трехмерных функций и изолиний к ним

Время на прочтение5 мин
Количество просмотров27K

Статья представляет собой нечто вроде “практического руководства” для построения весьма интересных трехмерных графиков функций вида z=f(x,y), с примером реализации на C#.
Читать дальше →

Что значат для вас юнит-тесты?

Время на прочтение5 мин
Количество просмотров8K
С технической точки зрения юнит-тесты – это очень простой инструмент, основанный на паре несложных концепций: (1) тестируемый класс, (2) набор тестовых методов, завернутых в некоторый класс и (3) набор методов, с помощью которых можно удостовериться в том, что состояние тестового класса соответствует (или не соответствует) некоторому значению.

Это очень простая штуковина, которая может кардинальным образом повлиять на процесс разработки в целом. С одной стороны существует TDD (“test-first approach"), при котором тесты «драйвят» не только процессом кодирования, но и процессом проектирования (т.е. дизайном системы). С другой стороны существуют разработчики с противоположной точкой зрения, которые считают юнит-тесты пустой тратой времени, потому что они не приносят никакой ценности пользователю.

Читать дальше →

Парсим Python код с помощью Flex и Bison

Время на прочтение6 мин
Количество просмотров35K

Вступление


Уже около двух лет я участвую в OpenSource проекте SourceAnalyzer, и вот появилась необходимость написать парсер для языка Python, который должен уметь строить граф вызовов (Call Graph) и граф зависимостей классов (Class Graph Dependency). Если точнее, граф строится с помощью других инструментов, а парсер должен лишь подготовить для этих инструментов данные.

Процесс работы над парсером был довольно занятным и мне бы хотелось поделиться с вами приобретенным опытом, а также поведать о некоторых подводных камнях, которые встретились на этапе разработки.
Читать дальше →

Go не рекомендуется использовать для разработки на Windows 32bit (UPD: и на Linux тоже)

Время на прочтение1 мин
Количество просмотров6K
Abtin Forouzandeh обнаружил баг в реализации go для 32-хбитной платформы Windows. Простейшая программа запускается и тут же падает.
Читать дальше →

Подкаст «Заметки о Qt» — первый, пилотный, выпуск

Время на прочтение1 мин
Количество просмотров2K
Мы с Vass тут слегка заскучали и решили попробовать сделать подкаст по Qt. Этот выпуск пробный, косяков в нем много и от вас, слушатели, зависит будут ли еще выпуски. В общем, слушайте, критикуйте, комментируйте, предлагайте.

Сам подкаст на rpod.ru — qt-notes.rpod.ru/272730.html
Читать дальше →

Придут ли на смену статически типизированным языкам языки с динамической типизацией?

Время на прочтение2 мин
Количество просмотров4.8K
Я был фанатом статически типизированных языков много лет. Я усвоил урок на собственном горьком опыте, используя C. Слишком много систем ломались из-за глупых ошибок типизации. Когда C++ вышел, я был заядлым приверженцем и яростным адептом строгой типизации. Я насмехался над smalltalk'ерами, кто ныл о потери гибкости. Надежность, в конце концов, была гораздо более важна, чем гибкость. И кроме того, мы могли поддерживать наше ПО гибким И статически типизированным, если просто следовать хорошим принципам управления зависимостями.

Четыре года назад приобщился к XP (методология Extreme Programming). Я полюбил акцент на практичности, который она добавила к разработке ПО. Мне также понравился упор на тестирование. С тех пор я заразился идеей тестирования. Я не могу более представлять себе создания кода без использования TDD (test driven development). Не могу вообразить даже, чтобы не иметь полное покрытие тестами, чтобы мои разработки были в сохранности.

Около двух лет назад я кое-что заметил. Я стал все меньше и меньше зависеть от типизации в плане надежности. Мои юнит-тесты предохраняли меня от совершения ошибок, связанных с типизацией. Чем больше я зависел от юнит-тестов, тем меньше я зависел от надежности на основе типизации в Java или C++ (мои языки).
Читать дальше →

Программа для нарезки хлеба

Время на прочтение1 мин
Количество просмотров3.3K
Ниже краткое изложение опубликованного ранее поста Почему я ненавижу фреймворки :

В средневековые времена программирования, к данным мы применяли функции. Для того, чтобы нарезать хлеб, брали структуру «хлеб» и передавали ее как параметр функции «нарезать»:

нарезать(хлеб);
Читать дальше →

Почему я ненавижу фреймворки

Время на прочтение4 мин
Количество просмотров70K
Я собираюсь сделать Java-веб-приложение (да, это будет Java, по некоторым причинам, которые сейчас озвучивать не хочу). В процессе работы, я оцениваю кучу J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container фреймворков.

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

Давайте представим, что я решил сделать шкафчик для специй.
Читать дальше →

Набор полезных утилит и библиотек мира .NET

Время на прочтение2 мин
Количество просмотров4.9K
Довольно часто так бывает что кто-то когда-то сделал прекрасную вещь, а она либо никем так и не была найдена, либо быстро забыта. Потихоньку я буду стараться предоставлять в серии топиков информацию по различным проектам, на которые стоит обратить внимание. Многие из них специфичны. И тем еще более интересны.

IL Stub Diagnostic Tool



IL заглушки (stubs) динамически генерируются во время работы приложения на лету и управляют маршаллингом и вызовом целевого метода. IL Stub Diagnostic tool была создана чтобы улучшить качество отладки приложений. Это real-time монитор, который показывает детали каждой IL заглушки, создаваемой в исследуемом процессе. Для каждой заглушки утилита показывает ее IL код и сигнатуры Managed/Unmanaged методов
Читать дальше →

Рельсы сошли с рельс: Почему я переписываю Archaeopteryx на CoffeeScript

Время на прочтение14 мин
Количество просмотров5.1K
Вы бывали на вечеринках, где друзья с работы и друзья из колледжа не разговаривают?

Я запостил видео на Tumblr, которое бы никогда не запостил на Facebook:


Это гитарист, отжигающий под «Bangarang» Skrillex'а.
Эй, при чём тут вообще Рельсы?!

Ближайшие события

Code52 — новый проект каждую неделю

Время на прочтение1 мин
Количество просмотров3.3K
imageЕсли вы хотите заняться open source проектом, но не знаете с чего начать, то Code52 вам поможет. В начале года несколько программистов (Andrew Tobin, Brendan Forster и Paul Jenkins) решили создать место для легкого старта в open source мире.
Раз в неделю реализуется одна новая идея. Уже сейчас в Code52 17 проектов. Преимущественно используюется .NET платформа, но создатели не собираются себя ограничивать. Например, проект sayw.at, стартовавший вчера, будет написан на NodeJS.

Подробнее о Code52

Для тех, кто пишет на языке Go

Время на прочтение1 мин
Количество просмотров27K

Друзья!


В продолжении поста «Google выпустила финальную версию языка программирования Go 1» интерес получил логическое продолжение и наше робкое желание было услышано администрацией Хабра и с сегодняшнего дня у языка Go есть собственный блог хаб.

Пользуясь случаем, не могу не порекомендовать книгу «Learning Go»
Читать дальше →

Насколько большие массивы (и значения) в PHP? (Подсказка: ОЧЕНЬ БОЛЬШИЕ)

Время на прочтение7 мин
Количество просмотров31K
В этой статье я хочу исследовать расход памяти у массивов (и значений в целом) в PHP используя следующий скрипт в качестве примера, который создаёт 100 000 уникальных целочисленных элементов массива и в конце измеряет количество использованной памяти.
Читать дальше →

Assert. Что это?

Время на прочтение8 мин
Количество просмотров446K
Assert — это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы. Эта конструкция может автоматически сигнализировать при обнаружении некорректных данных, что обычно приводит к аварийному завершению программы с указанием места обнаружения некорректных данных. Странная, на первый взгляд, конструкция — может завалить программу в самый неподходящий момент. Какой же в ней смысл?
Читать дальше →

История игры Триплекс, или сколько нужно квадратиков чтобы сломать голову

Время на прочтение17 мин
Количество просмотров11K
Чтобы освоить азы Web программирования, я решил написать HTML5 игру — головоломку под названием Triplex (www.quadpuzzle.ru). Написать игру для себя и для друзей — полдела. Захотелось довести проект до ума, сделав из игры продукт для широкого круга пользователей. Насколько получилось — судить вам.

    Правила игры просты. На игровом поле разложены фигуры из квадратиков. Цель игры — уложить все фигуры в указанный прямоугольник. Вращать можно только одну фигуру, помеченную кружком, если она есть. Решение в каждой задаче существует и единственное.

                        

Читать дальше →

Google выпустила финальную версию языка программирования Go 1

Время на прочтение1 мин
Количество просмотров6.6K
Вчера стало известно о том, что поисковый гигант выпустил финальную версию языка программирования Go 1, анонс о котором появился в 2009 году. Загрузить бинарные дистрибутивы языка для Linux, FreeBSD, Mac OS и Windows можно здесь. Язык выпущен под лицензией BSD.

Язык Go1, согласно команде его разработки, представляет из себя «попытку объединить скорость разработки динамических языков, таких как Python, с производительностью и безопасностью компилируемых языков, таких как C или C++» Справедливости ради, один из инженеров Google, занимающихся новым языком, признаёт, что экосистема языка ещё развита недостаточно — отсутствует IDE и набор поставляемых библиотек не очень большой, но, тем не менее, компания активно работает над улучшением ситуации.

Узнать подробности

Вклад авторов