Ищу
[info]rilken_pgm
очередную маст хэв книгу Джеффри Рихтера "Создание эффективных WIN32-приложений". После долгих поисков выяснилось, что она уже не выпускается. Если у кого завалялась и хочется ее продать, то с удовольствием куплю:) "Аналогов" не предлагать.



ЗЫ, Книга Дж. Ханка Рейнвотера "Как пасти котов. Наставление для программистов, руководящих другими программистами" оказалась каким-то бредом. Первая половина еще ничего, читаешь, систематизируя то, что знаешь, а вторая половина - набор общих, я бы сказала, общеизвестных вещей. Нудно и пользы практически ноль. Фи
Tags:

код to html
[info]rilken_pgm
Вещь
Tags:

Найдено на просторах инета
[info]rilken_pgm
В 2005 студии есть набор макросов,один из которых умеет переключаться между H и CPP, а вот в 2003 нет.
Можно использовать
 
    Sub GetFriendFile()
        'DESCRIPTION: Opens the corresponding .h / .cpp file
        Dim currentFileName As String
        Dim newFileName As String
        currentFileName = Application.ActiveDocument.FullName
        newFileName = ""
 
        If (UCase(Right(currentFileName, 2)) = ".H") Then
            newFileName = Left(currentFileName, Len(currentFileName) - 2) + ".CPP"
        ElseIf (UCase(Right(currentFileName, 4)) = ".CPP") Then
            newFileName = Left(currentFileName, Len(currentFileName) - 4) + ".H"
        End If
 
        If newFileName <> "" Then Application.Documents.Open(newFileName)
 
    End Sub
 

Для того чтобы его использовать идете в Tools | Macros | Macros IDE появится новое окно в котором будет открыт MyMacros проект. Добавьте новый модуль, назовите его скажем Switch2cpp. И далее вставьте в него функцию GetFriendFile, сохраните и затем назначьте сочетание клавиш.

Для этого выберите Tools|Options|Environment|Keyboard и там выберите из лист бокса Macros.MyMacros.Switch2cpp.GetFriendFile и сочетание клавиш, которые будут выполнять данный макрос, после этого не забудьте нажать кнопку Assign - наслаждайтесь.

Tags:

Статья про меня
[info]rilken_pgm
http://habrahabr.ru/blogs/crazydev/63944/#habracut
Мне нельзя было учить перл, я теперь влюблена в регулярные выражения, страшно обидно было, что в спп их нет.
Но ведь всегда можно найти выход:)
http://msdn.microsoft.com/ru-ru/library/dd335946.aspx

Какая прелесть
[info]rilken_pgm
Это просто подниматель настроения http://thedailywtf.com
По крайней мере, я не знала про этот сайт:)
Кто еще не в курсе, там публикуются куски кода, вызывающие ужас:) Клааасс
Вот, например:)
function vFrmUnsubscribe(form)
{
    total = form.length;
        
    var errorMsg = new Array("Please enter a valid Email Address.",
                             "","","","","","","");

    for(var i = 0; i < total; i++)
    {    
        if(i == 1 || i == 2 || i == 3 || i == 4 || i == 5 || i == 6 || i == 7)
        {
            continue;
        }
        if(i == 0)
        {
            if(form.elements[i].value == "" || form.elements[i].value.length<1)
            {
                alert(errorMsg[i]);
                form.elements[i].focus();
                return false;
            }
            if(!vEmail(form, i))
            {
                form.elements[i].focus();
                return false;
            }
        }    
        if(form.elements[i].value == "" || form.elements[i].value.length < 1 
                                    || form.elements[i].value == -1)
        {
            alert(errorMsg[i]);
            form.elements[i].focus();
            return false;
        }    
        
    }
    return true;

А вот вообще супер  function isDigit(digit)
{
    var charOk = "0123456789";
    return !(charOk.indexOf(digit) == -1)
}

function isAlphaNumeric(digit)
{
    var charOk = 
      "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    return !(charOk.indexOf(digit) == -1)
}

}


Tags:

А кто ты:)
[info]rilken_pgm
На сайте http://www.developers.org.ua
нарыла инфу, как определить свой профессиональный уровень. Автор утверждает, что все очень просто и показатель всего-навсего твоя зарплата. Вот его планка
3000+ - круче чем senior.
2000-2500 - senior
1300-1800 - middle
500 - 1000 - junior
300 и меньше - уборщицы, пожалуй, больше зарабатывают...

Интересно, насколько сейчас это оправдано, в условиях-то кризиса)

Полезности
[info]rilken_pgm
Вчера лазила по сайту http://habrahabr.ru/
Программеры и манагеры найдут там много интересных бяк:)
Рекомендую))

api
[info]rilken_pgm
Каазалось бы, пустячная проблема. Вызвать из одного приложения другое, окошко которого должно быть сверху. Однако BringApplicationToTheTop не спасает:( Хнык

веб-серфинг)
[info]rilken_pgm
 Понравившиеся штуки

Unit-тестирование в языке С
Карта языка C++ (The C++ Lands)(А вот это, народ, вообще вещь:), must see для всех плюсовиков:))))

solution
[info]rilken_pgm
Решение на предыдущую проблему - ф-ция, которая переводит всю эту штуку в строку и добавляет запятые через каждые 3 символа.
У кого есть решение лучше, прошу в студию:)

#include <string.h>

using namespace std;

/* from double to string */
string to_string(double val) {
 char buff[32];
 sprintf(buff,"%.2f",val);
 return string(buff);
}

/* function prints amounts in format #,###,###.## */
string doAmountMask(double val)

   string ret = to_string(val);
   string::size_type posP = ret.find('.');

   while (posP>3)
   {
      posP-=3;
      ret.insert(posP,",");
   }

   return ret;
}
Tags:

Я кретин
[info]rilken_pgm
Я часа 3 возилась на работе, искала решение, как с помощью ф-ции Sprintf выодить числа в формате "#,###,###,###.##".
Так и не нашла красивого решения. Ничего кроме идеи выводить все это по частям и извращаться в расчетах, в голову не приходит.
Херня типа trtaxamt.Sprintf("%.1d,%.3d,%.3d.%.2d", а дальше куча арифметических действий меня не устраивает((
Все, товарищи, присваивайте мне звание быдлокодера, я даже очень с вами согласна:(((
Хнык


Очень-очень
[info]rilken_pgm
хочу красные книги в бумажном виде, придется разориться или требовать на праздики в качестве подарков:) В промежутках между праздниками буду читать:)))
ЗЫ, Это я наткнулась на список мастрид книг и выделила красным шрифтом те, которых у меня нет:)
К сожалению, таких очень много:(

1. Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. Приемы объектно-ориентированного проектирования. Паттерны проектирования

2. Мартин Фаулер. Архитектура корпоративных программных приложений


3. Мартин Фаулер. Рефакторинг. Улучшение существующего кода.

4. Мартин Фаулер. UML. Основы. 3-е издание

5. Джошуа Кериевски. Рефакторинг с использованием шаблонов.

6. Крэг Ларман. Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку. 3-е издание

7. Бертран Мейер. Объектно-ориентированное конструирование программных систем.

8. Стив Макконелл. Совершенный код

9. Кент Бек. Экстремальное программирование

10. Кент Бек. Разработка через тестирование

11. Грегор Хопе. Шаблоны интеграции корпоративных приложений

12. Роберт Мартин. Быстрая разработка программ. Принципы, примеры, практика

13. Фредерик П.Брукс. Мифический человеко-месяц

14. Том Демарко и Тимоти Листер. Человеческий фактор: успешные проекты и команды

15. Eric Evans. Domain-Driven Design: Tackling Complexity in the Heart of Software

16. Arthur J. Riel. Object-Oriented Design Heuristics

17. Michael C. Feathers. Working Effectively with Legacy Code



Tags:

Устала
[info]rilken_pgm
смеяться комментариям поляков в коде:) 
Сейчас завела файлик на работе с перлами, когда наберется побольше, выложу на ваш суд:)
Чиатать код так интереснее. Я вообще заметила, что у меня болезнь рефакторинга. Мне все хочется улучшить, а лучше переписать нафиг. Мне мало пофиксить баг, нет жеш надо влезть и потратить в 3 раза времени больше на изучение лишних кусков в поисках, чего бы еще переделать:(
Скажите, это лечится?
Tags:

Наткнулась на статейку
[info]rilken_pgm

Почему ваш код – отстой

Автор: Дейв Эстелс (Dave Astels)

Ваш код – отстой, если он не работает

Работает ли ваш код? С чего вы это взяли? Можете ли вы это доказать?

Если ваш код не имеет тестов, он – отстой. Я имею в виду – всесторонние, в достаточной мере детализированые программные тесты (известные также как Юнит-тесты (unit tests)), а также более высокоуровневые функциональные (functional) и интеграционные (integration) тесты. Тесты, которые автоматизированы. Тесты, которые запускаются постоянно. Включая программные тесты, запускающиеся после всякого изменения кода.

Без адекватных тестов (подразумевая – как по количеству, так и по качеству), вы просто не можете иметь уверенность в том, что ваш код работает как нужно. Задумайтесь: даже если вы сами уверены в том, что вы сделали... почему кто-то ещё должен слепо верить этому? А что вы скажете о людях, которые будут работать с вашим кодом в будущем и изменять его? Как они будут знать, что ваш код работает после изменений, выполненых позже?

Ваш код – отстой, если он не поддаётся тестированию

Отлично, вы решили добавить тесты в ваш код. Чаще всего, это не так-то просто. Скорее всего, ваш код просто-напросто не был спроектирован и/или реализован так, чтобы его было легко тестировать. Это означает, что вам придётся делать изменения в нём, чтобы сделать его поддающимся тестированию... не разрушив никакой функциональности (собственно это в наше время и называется рефакторингом (refactoring)). Но, выполняя такие изменения, можно ли быстро и уверенно сказать, что вы ничего не сломали в работающем коде, если в нём не было всесторонних и детализированых тестов? Вряд ли. (Похоже на задачку про курицу и яйцо – прим. перев.)

На самом деле, дела обстоят ещё хуже. Если вы принимаете решение о том, что вы будете писать тесты для всего своего кода после того, как написан сам код, вам придётся приложить дополнительное усилие для того, чтобы передизайнить/переписать этот код с тем, чтобы сделать его тестируемым.

Сохранение адекватного уровня тестирования при подходе, когда тесты пишутся после самого кода, требует времени и планирования. И если вам приходится делать дополнительную работу для того, чтобы сделать код тестируемым... хм... этот код – отстой.

Написание тестов прежде написания самого кода означает, что код по определению поддаётся тестированию. Если вы отрабатываете тесты поочерёдно, вы получаете ещё больший выигрыш, поскольку каждый тест требует только инкрементальных изменений в коде, который уже проверенно работает.

Ваш код – отстой, если его трудно прочесть

Код должен быть легко читаем. Стив МакКоннелл (Steve McConnell) сказал в своём выступлении на SD West '04: код должен удобно читаться, а не удобно писаться.

Здесь следует отметить несколько факторов. Выбор хороших, говорящих сами за себя, имён – хорошее начало. Стремитесь к простым решениям, даже если они кажутся более многословными или неэффективными. Является ли эффективность проблемой, станет известно только впоследствии, при профилировании проекта в реальной ситуации использования продукта.

Выбирайте стиль и соглашения о форматировании на ранней стадии проекта, и следуйте этим соглашениям. Требуйте от других следования им же. Это будет легче сделать, если каждый внесёт свою лепту в такое соглашение. Всё это сделает ваш код единообразным и более лёгким в прочтении.

И избавляйтесь от дублирования кода во всех его проявлениях. Более подробно об этом – ниже.

Ваш код – отстой, если он непонятен

Этот пункт весьма близок к предыдущему. Код может быть читабельным, но, тем не менее, труднопонимаемым. Возможно, он читается хорошо, но вводит читающего в заблуждение. Представьте: вы потратили много времени, чтобы выбрать хорошее имя переменной, но способ её использования и её значение изменились в то время, как имя осталось прежним. Это ещё хуже, чем зашифрованное имя... по крайней мере, в последнем случае, читатель знал бы, что имя бессмысленно. Но если же имя не отражает сути, читатель будет иметь беспочвенные суждения о том, что происходит в коде, что в итоге приведёт к непониманию, и в конце концов – к багам.

Ваш код – отстой, если он догматично следует ультрамодным framework ценою соблюдения хороших практик дизайна и имплементации

Например, Боб Мартин (Bob Martin) недавно поднял вопрос о догматическом использовании private полей и getters/setters для простой структуры данных (например, Data Transfer Object – DTO). Если поле прозрачно для чтения/записи, почему бы просто не сделать поле public? В большинстве языков это возможно. Конечно, в некоторых – нельзя. Например, традиционно в Smalltalk все поля (fields) являются private, а все методы – public.

Обычно хорошо, если вы можете выбросить какой-то фрагмент из кода или избежать его написания. Использование тяжёлого framework обычно требует того, чтобы вы писали значительную часть кода, который попросту не имеет никакой ценности с точки зрения бизнеса (business value).

Есть множество разнообразных лёгких frameworks для Java. Они являются ответом на тяжёлые frameworks (такие как EJB), которые в последнее время фактически стали догмой. У O'Reilly есть книга об этом, в соавторстве с Брюсом Тейтом (Bruce Tate).

Когда вы выбираете framework, предпочтите более лёгкий framework, который будет делать всю необходимую работу. Использование средств типа Hibernate, Prevayler, Spring, PicoContainer, NakedObjects, и т. д., может действительно быть выигрышным во многих случаях. Никогда не принимайте слепо тяжёлый framework только потому, что это модно сегодня. Хотя также слепо не следует выбирать и лёгкий framework. Всегда взвешивайте прежде, чем принять решение.

Ваш код – отстой, если в нём есть дублирование

Дублирование – скорее всего, единственная, самая значительная вещь, которую нужно искоренить в вашем коде.

Дублирование имеет несколько форм:

текстовое

Оно – самое простое и легко находимое. Когда у вас есть секции кода, которые идентичны или очень похожи. Чаще всего – это результат программирования методом copy & paste. Есть несколько способов избежать этого вида дублирования, включая: выделение методов (extracting methods) и повторное их использование (reusing), превращение метода в шаблонный метод (template method), вынос его в суперкласс (superclass) и предоставления вариантов в подклассах (subclasses), и другие базовые виды рефакторинга. Подробности см. в книге «Рефакторинг» Мартина Фаулера (Fowler's "Refactoring").

функциональное

Это – особый вид текстового дублирования, когда у вас есть различные функции/методы, которые предназначены для одного и того же. Его можно часто встретить в проектах, которые разделены между группами разработчиков, недостаточно хорошо взаимодействующих друг с другом. Также, оно может быть результатом copy & paste, или просто незнания существующего кода или библиотек. Практики и полиси (practices and policies), которые стимулируют и способствуют знанию всего объёма кода и всех библиотек и frameworks, находящихся в использовании, позволяют избежать функционального дублирования.

временное

Оно – немного более трудное, менее ясное, и не так легко обнаруживаемое. У вас есть временное дублирование, когда одна и та же работа делается повторно – в то время, когда так не должно быть. Это не проблема в том же понимании, как предыдущие две формы дублирования, так как это не приводит к наличию лишнего кода. Но это может стать проблемой при масштабировании системы, когда повторяющаяся работа начинает отнимать много времени. Для решения этой проблемы могут использоваться различные техники кеширования.

Из трёх вышеназванных типов, текстовое дублирование является самым худшим. Оно загрызёт вас раньше других, когда ваша система будет расти. Оно имеет гадкую особенность быть подобной вирусу: когда ваш код заболел дублированием, он уговаривает вас думать: "О, это не такая уж и проблема, если я просто возьму вот этот кусок кода, положу его копию здесь и немного подгоню его. В конце концов, все вокруг делают это!" Это сильно напоминает Разбитое Окно (Broken Window), о котором говорили Дэйв Томас и Энди Хант (Dave Thomas & Andy Hunt). Если вы не возвыситесь над мелочами, которые появляются так или иначе, всё в конце концов пойдёт коту под хвост.

Итог

Итак, весьма вероятно, что какая-то часть вашего кода – отстой.

Что с этим можно сделать? Ну, для начала вам придётся признать факт (и я надеюсь, что эта статья вам помогла в этом) и сознаться в том, что это – проблема.

Затем, у вас есть выбор. Вы можете что-то с этим делать. Вы можете изучить новые способы работать: способы, которые помогут вам писать лучший код. Вот и чудесно. Если хотя бы один программист здесь делает это, я буду счастлив.

Ваш второй вариант – не делать с этим ничего, и продолжать писать код так же, как прежде.

Это ваш выбор. Выбирайте с умом.


Эта статья опубликована в журнале RSDN Magazine #2-2006. Информацию о журнале можно найти здесь


10 Programming Proverbs Every Developer Should Know
[info]rilken_pgm
Posted by Kevin Pang on 07.10.2008

Proverbs are used to express universal truths or life lessons in a short and memorable fashion.  I find that they are a great way to keep things in perspective, both in life and in work.  Because of this, I have assembled 10 programming proverbs that every developer needs in their arsenal.

1. There is no smoke without fire

Relax. It's probably just another fire drill

Poorly designed code tends to manifest itself through some common tell-tale signs.  Some examples of these are:

  • Giant classes and/or functions
  • Large blocks of commented out code
  • Duplicated logic
  • Deeply nested if/else blocks

Developers often refer to these as code smells, but personally, I think the term "code smoke" or "code fumes" is more appropriate as it implies a higher sense of urgency.  If you don't address the underlying problem it will come back to burn you later on.

Read more... )</div>

 


Топ 10 вещей, раздражающих программистов
[info]rilken_pgm
Kevin Pang, “Top 10 Things That Annoy Programmers”, публичный перевод на русский с английского.
Programmers all have their personal pet peeves. Whether it's scope creep, Hungarian notation, or smelly coworkers, there are certain nuisances that we must put up with in our line of work. The following is a list of the top 10 things that annoy programmers, compiled from the results of my recent question on StackOverflow along with some of my own experiences as a programmer

У всех программистов есть своя любимая мозоль. Растущие требования к проекту, венгерская нотация, дурнопахнущие коллеги – всё это нюансы, с которыми приходится мириться по ходу работы. Следующий список – это топ 10 вещей которые раздражают программистов, собранные из ответов на мой последний вопрос на StackOverflow вместе с несколькими моими случаями из опыта работы программистом:

10. Комментарии, которые объясняют «как», но не «почему»

Вводные курсы для программистов учат студентов комментировать рано и комментировать часто. Идея в том, что лучше иметь слишком много комментариев, чем слишком мало. К сожалению, многие программисты неправильно понимают эту идею как необходимость комментировать каждую строку кода, в результате мы получаем код наподобие этого (из поста Джефа Атвуда про [ссылка]кодирование без комментариев[/ссылка]):

r = n / 2; // r присвоить n деленное на 2

//Повторять пока r-(n/r) больше чем t

while ( abs( r - (n/r) ) > t ) {

r = 0.5 * ( r + (n/r) ); //Присвоить r половину от r + (n/r)

}

У вас есть какие-нибудь идеи, что делает этот код? У меня нет. Проблема в том, что здесь есть комментарии, которые объясняют что делает код, но не объясняют почему. Если бы в программе был баг, и вы споткнулись бы на этом коде, вы не знали бы, с чего начать. Рассмотрим тот же код, только с другим набором комментариев:

// вычисление квадратного корня методом аппроксимации Ньютона-Рафсона

r = n / 2;

while ( abs( r - (n/r) ) > t ) {

r = 0.5 * ( r + (n/r) );

}

Намного лучше. Мы все еще не слишком понимаем, что здесь происходит, но по крайней мере имеем точку отсчета.

Комментарии предполагались для помощи программисту в понимании кода, но не синтаксиса. Обычно справедливо утверждение, что люди, которые читают ваш код, имеют базовое представление о том, как работает цикл, так что нет необходимости добавлять комментарии типа «// итерации по списку пользователей». С чем люди, читающие ваш код, не знакомы, так это с бизнес-логикой и причинами, лежащими за ней.

9. Перерывы в работе

Очень мало программистов способны перейти от нуля к кодированию в один момент. Мы больше похожи на локомотивы чем на феррари; нам необходимо время для того чтобы начать, но потом мы можем проделать впечатляющий объем работы. К сожалению, очень сложно врубится в программирование, когда вас постоянно беспокоят клиенты, менеджеры и собратья программисты.

Нам надо держать в головах слишком много информации во время написания кода, так что у нас нет возможности остановить работу над задачей, заняться чем-то другим, а затем продолжить нашу работу и не потерять что-нибудь. Перерывы в работе останавливают наш локомотив мышления, и ставить его обратно на рельсы – процесс долгий, неприятный, и что хуже всего, чреватый ошибками.

8. Ползучие изменения

Из Википедии:

Ползучие изменения (также называемые базовыми изменениями, ползучими требованиями, опциональными изменениями, и иногда – «синдромом мелких кухонных доработок») в управлении проектами означают неконтролируемые изменения рамок проекта. Этот феномен может случаться когда рамки проекта определены, документированы или контролируются недостаточно точно. В общем это негативные инциденты, которых лучше избегать.

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

Версия 1: Показать карту местности

Версия 2: Показать трехмерную карту местности

Версия 3: Показать трехмерную карту местности и чтобы пользователь мог по ней «летать».

Черт возьми! Это превратило 30-минутную задачку в массивную комплексную систему, которая требует тысячи человеко-часов. Что хуже всего, наибольшее число ползучих изменений случается уже на этапе разработки, и это требует переписывания, рефакторинга, а иногда даже отбрасывания кода, разработанного всего несколько дней назад.

7. Менеджеры, которые не смыслят в программировании.

[Подпись к картинке:] Ок, здесь есть повод взбодриться.

У менеджеров нелегкая работа. Люди непостоянны и переменчивы. Сделать так, чтобы большая группа людей была удовлетворена и связана воедино, это очень сложная задача. Однако менеджеры реально должны иметь базисное понимание того, чем эта группа занимается, особенно в технологичных сферах деятельности. Иначе вы закончите неконтролируемыми изменениями рамок проекта, нереалистичными сроками и чувством разочарования у обеих сторон. Это довольно общая жалоба среди программистов, источник многих неприятностей (и одного забавного <a href=http://www.dilbert.com>комикса</a>).

6. Документирование своих приложений

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

Несложно заметить что написание документации – это одна из вещей, которую программисты делают просто ужасно. Просто бегло посмотрите на большинство нынешних open-source проектов. В чем они постоянно просят помощи? Вы угадали. Документация. Я думаю что смогу уверенно сказать за большую часть программистов во всем мире, когда спрошу – «не мог бы кто-нибудь еще сделать это?».

5. Приложения без документации

Я не говорил, что мы не бываем лицемерами. ;-). Программистов постоянно просят использовать сторонние библиотеки в своих проектах. Для этого нам обычно бывает нужна некоторая документация. К сожалению, как было сказано ранее в пункте 6, программисты ненавидят писать документацию. И вот ирония не обошла нас стороной.

Ничто не огорчает более, чем попытка использовать стороннюю библиотеку, когда ты абсолютно не врубаешься как работает и половина функций из API (и нет способа это узнать). Какая разница между НеясноНазваннаяФункция() и НеясноПохожеНазваннаяФункция()? Нужно ли мне проверять на ноль данные до того как обратится к СвойствуХЗ? Думаю это можно узнать только путем проб и ошибок! Черт...

4. Железо

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

3. Неопределенность

«Вебсайт сломался». «Опция X работает не правильно». Нечётко сформулированные требования давят на мозги. Меня всегда поражает то, как разгневанные пользователи-непрограммисты сообщают о проблемах программисту. «Она сломалась, почини её!» – это не та информация, с которой можно работать.

Программное обеспечение (по большей части) однозначно реагирует на внешние воздействия. Нас это вполне устраивает. Поэтому ублажите нас, описав какой именно шаг процесса не работает вместо того, чтобы просто сказать «почини ее».

2. Другие программисты

Программисты не всегда хорошо ладят с другими программистами. Шокирующая, но правда. Здесь можно было бы легко составить свой топ 10 главных проблем, так что я просто опишу несколько самых распространенных привычек программистов которые надоедают другим программистам и воздержусь от того чтобы впадать в детали в отдельной статье:

Сварливость вплоть до враждебности.

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

Неумение общаться эффективно и сбивающая с толку терминология.

Неспособность честно делать свою долю работы.

Равнодушие к основному коду и всему проекту.

И наконец, далеко не последняя по значимости вещь номер 1, раздражающая программистов...

1. Собственный код, 6 месяцев спустя

[Подпись к картинке:] Не дыши, кажется я нашел баг.

Когда-нибудь приходилось смотреть на свой старый код и болезненно морщиться? Как глуп же ты был! Как мог ты, тот кто сейчас знает так много, написать такое? Уничтожить это! Сжечь дотла!

Итак, хорошие новости. Вы не одиноки.

Правда в том, что мир программирования постоянно меняется. То, что сегодня считается лучшим выбором, завтра может выйти из употребления. Мы должны принять то, что никогда не будем знать всего и совершенный код это всего лишь несбыточная мечта. Трудно признавать, что ваша работа, выглядящая столь прекрасно в данный момент, позже станет просто смехотворной. И это удручает, потому что сколько бы мы не делали исследований в области последних и замечательных инструментариев, элементов дизайна, фрэймворков, приемов программирования, наша цель всегда оказывается вне досягаемости. Для меня это самая неприятная вещь в работе программиста; хрупкость того, что мы делаем необходима для дальнейших улучшений, но меня не покидает чувство, что я – один из монахов, рисующих на песке.

Ну что же, вот они. Топ 10 вещей которые достают программистов. Опять же, если вы увидите, что я что-то упустил, дайте мне об этом знать в комментариях!

Оригинал (Английский): Top 10 Things That Annoy Programmers

Перевод: © tigra-alive, tpumapa3m, VlexZ, Андрей Дягель, the_corrector, n-two, kycok, Александр, dmitry, Dim, kuzyakiev, sergakrem.livejournal.com .



цитата:)
[info]rilken_pgm

 
"Если бы люди строили дома так же, как программисты пишут программы, то любой бы прилетевший дятел мог бы разрушить цивилизацию" (с)

HL7 (медицинский стандарт) - for work
[info]rilken_pgm

HL7, Health Level 7


http://www.sparm.com/developer/tech/standart-hl7



Tags: ,

Такие вот улыбчивые наши американские коллеги:)
[info]rilken_pgm


Tags:

То, что в данный момент больше всего интересует:)
[info]rilken_pgm

Microsoft Certified Professional Developer (MCPD) - Сертифицированный профессиональный разработчик

MCPD: Windows Developer

The Microsoft Certified Professional Developer: Windows Developer (MCPD: Windows Developer) - эта сертификация подтверждает, что Вы имеете необходимые знания и навыки, которые требуются для построения сложных клиентских приложений на платформе Windows Forms с использованием .NET Framework 2.0.

Кандидаты на статус MCPD: Windows Developer в первую очередь должны выполнить требования для получения сертификации MCTS: .NET Framework 2.0 Windows Applications (два экзамена: 70–536 и 70-526). После этого необходимо сдать еще один обязательный экзамен. В приведенной ниже таблице указаны учебные курсы, необходимые для подготовки к экзаменам на статус MCPD: Windows Developer.

Тест
Курс
70–536 TS: Microsoft .NET Framework 2.0 - Application Development Foundation 2956 Developing Applications with the .NET Framework 2.0 Foundation
70-526 TS: Microsoft .NET Framework 2.0 - Windows-Based Client Development 2546 Core Windows Client Development with Microsoft Visual Studio 2005
и
2547 Advanced Windows Client Development with Microsoft Visual Studio 2005
70–548 PRO: Designing and Developing Windows Applications by Using the Microsoft .NET Framework 2631 Optimizing the Software Development Life Cycle with Microsoft Visual Studio Team System

 How to...

more..

Обзор программ сертификации Microsoft


Хожу по форумам, пытаюсь понять, что именно я хочу, с чего начать и к чему готовиться:)
Хочу себе маленькую цель в виде очередной бумажки:)

Для 70-536 они рекомендуют книги
MCTS Self-Paced Training Kit (Exam 70-536): Microsoft® .NET Framework 2.0 Foundation
Programming Microsoft® Visual C#® 2005: The Language
Programming Microsoft® Visual Basic® 2005: The Language

Ну что ж, бэйсик, это, конечно, печально, но прорвемся, не так ли?

Кстати, еще форум по теме


Home