Новые книги в жанре: Программирование

Каждый жанр нашей онлайн библиотеки, включая "Программирование" регулярно пополняется за счёт добавления новинок литературы. На этой странице выводятся все книги жанра "Программирование" в порядке добавления на сайт. Хочешь чего-то новенького из мира литературы - заходи сюда.
Вальсируя с медведями
5
Часть I Почему? • Зачем нужно управлять рисками, почему бы просто не избегать их? • Что такое риск и что такое управление рисками? • Каковы последствия неуправляемого риска? • Достаточно ли иметь хорошие технологические процессы, чтобы считать, что меры против риска приняты? • Почему нам нужна эта новая дисциплина? Глава 1 Стремление к рискам Избегать рисков – дело проигрышное. Порой вы встречаете проект, кажущийся полностью свободным от рисков. Раньше вы могли бы отнестись к этому как к неожиданному подарку и благодарили удачу за посланный для разнообразия проект, сулящий безмятежную жизнь на время его осуществления. Мы реагировали так же. Какими глупцами мы были! Проекты без риска – удел неудачников. В них почти всегда и выгоды никакой нет, потому-то их и не осуществили давным-давно. Поберегите свое время и силы и потратьте их на что-нибудь стоящее: Не беритесь за проект, если в нем нет рисков. Риски и выгоды всегда ходят парой. Проект полон рисков потому, что ведет на нехоженый путь. …
Тонкости дизассемблирования
7
Обратим внимание так же и на последовательности типа 0x66 0x66 [ xxx ] . Хотя фирма intel не гарантирует корректную работу своих процессоров в такой ситуации, но фактически все они правильно интерпретируют такую ситуацию. Иное дело некоторые отладчики и дизассемблеры, которые спотыкаются и начинают некорректно вести себя. Есть еще один интересный момент связанный с работой декодера микропроцессора. Декодер за один раз считывает только 16 байт и, если команда «не уместиться», то он просто не сможет считать «продолжение» и сгенерирует исключение «Общее нарушение защиты». Однако, иначе ведут себя эмуляторы, которые корректно обрабатывают «длинные» инструкции. Впрочем, все это очень процессорно-зависимо. Никак не гарантируется сохранение и поддержание этой особенности в будущих моделях, и поэтому злоупотреблять этим не стоит, иначе ваша защита откажется работать. Префиксы переопределения сегмента могут встречаться перед любой командой, в том числе и не обращающейся к памяти, например, CS : …
Путь камикадзе [Смертельный марш]
2003
7.5
Если в этот момент вы решили, что у вас нет времени читать всю книгу, скажу только одно слово, которое может окупить время, потраченное на чтение предисловия: приоритетность ( triage ). Если вы участвуете в безнадёжном проекте, почти наверняка окажется недостаточно ресурсов, чтобы реализовать всю функциональность и возможности ПО, которые требуются конечному пользователю, в рамках утверждённого плана и бюджета. Так или иначе придётся решать, какие возможности следует реализовывать в первую очередь, а какими можно пожертвовать. Действительно, некоторые из незначительных возможностей не будут реализованы никогда , поэтому самое лучшее – это дать им спокойно умереть собственной смертью. Другие возможности являются достаточно важными, но также относительно легко реализуемыми, например, с помощью поставляемой библиотеки классов или используемых вами CASE-средств. Говоря языком медиков, эти возможности выживут сами по себе. Успех или неудача безнадёжного проекта зачастую зависит от способности …
Введение в Perl
5
Синтаксис Перл программа (скрипт) состоит из последовательности деклараций и предложений. Единственно что должно быть обязательно декларировано это форматы отчетов и подпрограммы (функции). Все не объявленные переменные, массивы, имеют значение 0 или null. Декларации (объявления). Перл имеет свободный формат. Комментарии начинаются с символа ' # ' и продолжаются до конца строки. Декларации могут использоваться в любом месте программы так же как и предложения (statements) но действуют они только в фазе компиляции программы. Обычно их помещают или в начале или в конце программы. Декларация подпрограмм позволяет использовать имя подпрограммы как списковый оператор начиная с момента декларирования. Пример: sub test; # Декларация подпрограммы test $var1 = test $0; # Использование как оператора списка. Декларации подпрограмм могут быть загружены из отдельного файла предложением require или загружено и импортировано в текущую область имен предложением use . Подробно см. главу Модули. Простое предложение. …
Время — деньги. Создание команды разработчиков программного обеспечения
2002
4
Введение Я пришёл в NuMega Technologies летом 1994 года. Работая над BoundsChecker, продуктом для обнаружения ошибок в программах для Windows, я совмещал должности руководителя разработки и менеджера по маркетингу продукта. Тогда в NuMega было всего лишь 14 сотрудников: кроме двух основателей компании — три программиста, руководитель административной службы, четверо специалистов по сбыту, один администратор в офисе, один посыльный, три специалиста по технической поддержке и менеджер по маркетингу. Мы были небольшой компанией, по всем статьям подходящей под определение начинающей. Каждому приходилось совмещать несколько должностей и выполнять массу обязанностей. Однако, несмотря на небольшие размеры NuMega, у нас были большие планы и надежды. Мы твёрдо намеревались создавать замечательные программы и хотели собрать элитную группу специалистов, способную создавать лучшие в мире инструменты для разработки ПО. Спустя несколько лет, благодаря заботам основателей и усилиям первоклассной группы …
Сущность технологии СОМ. Библиотека программиста
2001
5
Первая реализация СОМ была выпущена в свет как часть программного продукта OLE 2.0 в мае 1993 года. Корневой интерфейс (тогда он еще не назывался IUnknown) имел в своем составе метод GetClassID. Тот факт, что он был перемещен в IPersist, иллюстрирует принцип поддерживать модель СОМ настолько простой, насколько это возможно. В одно время IUnknown не имел метода AddRef. В дальнейшем стало ясно, что запрещение копирования указателей интерфейсов – слишком жесткое ограничение для пользователей. «Unknown» в «IUnknown» возник как результат создания Тони Вильямсом в декабре 1988 года внутреннего документа фирмы Microsoft под названием Object Architecture: Dealing with the Unknown—or—Type Safety in a Dynamically Extensible Class Library (Архитектура объектов: борьба с неизвестным – или – безопасность типов в динамически расширяемой библиотеке классов). Решение использовать RPC в качестве механизма межпроцессорного управления (interprocess remoting mechanism) было принято в первые два месяца 1991 …
Давайте создадим компилятор!
5
Синтаксический анализ выражений Начало Если вы прочитали введение, то вы уже в курсе дела. Вы также скопировали программу Cradle в Turbo Pascal и откомпилировали ее. Итак, вы готовы. Целью этой главы является обучение синтаксическому анализу и трансляции математических выражений. В результате мы хотели бы видеть серию команд на ассемблере, выполняющую необходимые действия. Выражение – правая сторона уравнения, например: x = 2*y + 3/(4*z) В самом начале я буду двигаться очень маленькими шагами для того, чтобы начинающие из вас совсем не заблудились. Вы также получите несколько хороших уроков, которые хорошо послужат нам позднее. Для более опытных читателей: потерпите. Скоро мы двинемся вперед. Одиночные цифры В соответствии с общей темой этой серии (KISS-принцип, помнишь?), начнем с самого простого случая, который можно себе представить. Это выражение, состоящее из одной цифры. Перед тем как начать, удостоверьтесь, что у вас есть базовая копия Cradle. Мы будем использовать ее для других …
Настоящие программисты не используют Паскаль
1983
7.5
Из-за этого настоящие программисты неохотно редактируют уже работающие программы. Они считают более простым непосредственно латать двоичный объектный код, используя прекрасную программу под названием SuperZap (или ее эквивалент на не-IBM машинах). Этот метод настолько хорош, что многие программы, работающие на ЭВМ фирмы ИБМ, не имеют ничего общего со своим собственным текстом на Фортране. В большом количестве случаев первоначальный символьный текст программы вообще не существует. Когда наступает время подправить такого рода программу, никакой администратор даже не думает послать на эту работу кого-либо, кроме настоящего программиста - никакой сосунок (структурный программист) не будут знать даже с чего начать. Это называется защита от несанкционированного доступа. Некоторые не используемые настоящим программистом средства программирования включают: - препроцессоры Фортрана, такие как Mortran и Ratfor; эти кулинарные рецепты в программировании хороши для выпечки фруктового пирога; - отладчики …
C++
8.11
Исторические замечания Безусловно, С++ восходит главным образом к C [7]. C сохранен как подмножество, поэтому сделанного в C акцента на средствах низкого уровня достаточно, чтобы справляться с самыми насущными задачами системного программирования. C, в свою очередь, многим обязан своему предшественнику BCPL [9]. На самом деле, комментарии // (заново) введены в С++ из BCPL. Если вы знаете BCPL, то вы заметите, что в С++ по-прежнему нет VALOF блока. Еще одним источником вдохновения послужил язык Simula67 [2,3], из него была позаимствована концепция класса (вместе с производными классами и функциями членами). Это было сделано, чтобы способствовать модульности через использование виртуальных функций. Возможности С++ по перегрузке операций и свобода в расположении описаний везде, где может встречаться оператор, похожи на Алгол68 [14]. Название С++ – изобретение совсем недавнее (лета 1983-его). Более ранние версии языка использовались начиная с 1980-ого и были известны как «C с Классами». Первоначально …
Модель зрелости процессов разработки программного обеспечения
5
1.2. Фундаментальные концепции, лежащие в основе понятия зрелости производственных процессов Согласно словарю Вебстера, процесс является «системой операций для производства чего-либо… последовательностью действий, изменений или функций, предназначенных для достижения окончания или результата». Комитет IEEE определяет процесс как «последовательность шагов, выполняемых для достижения заданной цели» [IEEE-STD-610]. Производственный процесс может быть определен как набор операций, методов, практик и преобразований, используемых разработчиками для создания и сопровождения ПО и связанных с ним продуктов (например, планов проекта, проектных документов, кодов, сценариев тестирования и руководств пользователя). По мере того, как организация становится более зрелой, ее производственный процесс становится все более четко определенным и последовательно применяемым в рамках всей организации. Продуктивность производственного процесса описывает совокупность ожидаемых результатов, которые могут быть достигнуты …
Каждому проекту своя методология
1999
5
Допустим, в обоих проектах используются варианты использования (use cases). Ребята из Лиги по боулингу вполне могут написать их в виде нескольких предложений на салфетке или на доске и считать это достаточным документом. Команда, которая строит атомную станцию, наверняка будет настаивать на том, чтобы все варианты использования были написаны с помощью специального инструментария, чтобы были заполнены все необходимые поля и т.д. После они обязательно потребуют пересмотра, внесения правок и многократного подписания документов в течение жизненного цикла проекта. При этом стоимость вторично написанных вариантов использования возрастает. Однако преимущество этого метода состоит в том, что чем большее количество "писателей" и "читателей" будут взаимодействовать между собой, тем меньше вероятность возникновения ошибок и недопонимания. Возрастающая стоимость разработок вполне оправдывается большей безопасностью и надежностью конечного продукта. Принцип 2 указывает на то, что …
Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения
1999
5
Проблема 2. Они вполне могут обойтись и без нас, и при этом успешно создавать программное обеспечение. Такой процесс повторялся еще несколько раз, и я окончательно разуверился в своей способности "видеть то, что происходит на самом деле". Я мог сказать лишь, что в разработке проекта есть какой-то очень важный аспект, который мы никак не можем вычислить. Не так давно я попробовал решить эту проблему, работая в паре с этнографом. Мне нужна была помощь просто для того, чтобы дать название происходящему [Ho]. Вообще, консультанту хорошо работать вместе с этнографом, однако на этот раз мы едва ли смогли начать работу. Проблема была очень простая и непреодолимая: невозможно сказать, что ты видишь, до тех пор, пока у тебя нет для этого подходящего названия. Было очевидно, что нашему словарю не хватает адекватных понятий. На сегодняшний день мой послужной список складывается из участия, детального опроса или изучения документации более трех дюжин проектов (отдельные их аспекты я обобщил …
Парное программирование: преимущества и недостатки
5
Экономическая обоснованность Ключевой вопрос, возникающий при обсуждении целесообразности перехода на парное программирование - это затраты, которых оно потребует. Если методика требует слишком больших расходов, то никакой руководитель компании просто не станет ее вводить. Скептики полагают, что переход на парное программирование влечет за собой удвоение расходов на разработку программы и персонал. Однако, помимо этих затрат существуют и другие виды расходов, которые тоже необходимо учитывать: контроль качества и поддержка уже находящегося в эксплуатации продукта. Так, IBM сообщает, что они потратили около 250 миллионов долларов только на устранение 30 000 проблем, о которых заявили их клиенты. Итого, по 8 000 долларов за каждую ошибку! В 1999 году второй автор этой статьи (Лори Вильямс) провел в университете Юта эксперимент по выяснению экономических аспектов парного программирования. В нем участвовали студенты старших курсов, обучавшихся по специальности "Software Engineering". Треть …
Как пасти котов. Наставление для программистов, руководящих другими программистами
2006
6.2
О научном редакторе Дэйв Кристенсен (Dave Christensen) в настоящее время трудится на посту старшего системно-технического аналитика в целлюлозно-бумажном отделении корпорации Potlatch (штаб-квартира находится в Клокете, штат Миннесота). В его обязанности входит обеспечение компании конкурентных преимуществ за счет разрабатываемых им веб-приложений. Кроме того, он – президент Proxis Productions – консалтинговой компании, специализирующейся на проектировании распределенных корпоративных веб-приложений. В 1995 году, когда компания Proxis Productions только создавалась, Дэйв предполагал заняться компьютерной графикой для видеоигр и других коммерческих предприятий, однако с утверждением графики в Интернете он получил возможность свести свои графические и технические интересы воедино. У Дэйва диплом по английской литературе; кроме того, он прослушал несколько медицинских курсов и занимался в театре в колледже St. Scholastica. Дэйв – счастливый человек: свободное от работы время он проводит с …
Программист-прагматик. Путь от подмастерья к мастеру
2004
5
Кому адресована эта книга? Эта книга предназначена программистам, желающим повысить эффективность и продуктивность своей работы. Возможно, вы разочарованы тем, что не реализуете до конца свой потенциал. Возможно, смотрите на коллег, которые, как вам кажется, используют инструментальные средства, чтобы опередить вас в продуктивности своего труда. Может быть, в вашей работе используются устаревшие технологии, и вам хотелось бы узнать, как можно приложить новые идеи к тому, над чем вы работаете в данный момент. Авторы не претендуют на знание ответов на все вопросы (или на большинство из них) и на то, что их идеи применимы к любым ситуациям. Можно лишь сказать, что если следовать подходу авторов, то опыт приобретается быстро, продуктивность увеличивается и целостное понимание процесса разработки программ улучшается. Вы создаете лучший программный продукт. Как происходит становление программиста-прагматика? Каждый разработчик уникален, со своими сильными сторонами и слабостями, предпочтениями …
Getting Real
5
Начало Делайте меньше Меньше соревнуйтесь Народная мудрость гласит: чтобы подавить своих конкурентов, вы должны переиграть их. Если у них четыре возможности, у вас их должно быть пять, пятнадцать, двадцать… Если они тратят N, то вы должны потратить NN. Если у них есть 20, то у вас должно быть 30. Это — тупик. Дорогой и параноидальный путь создания продуктов. Защищающиеся, параноидальные компании не могут предположить, что остаются позади. Они не лидеры, а последователи. Если вы хотите сделать свою компанию ведомой, а не ведущей, вы можете прекратить читать эту книгу прямо сейчас. Так что же делать тогда? Ответ: меньше. Сделайте меньше чем ваши конкуренты, чтобы ударить по ним. Решайте простые проблемы и оставьте сложные, противные проблемы всем остальным. Вместо превосходства попробуйте делать недостаточно. Мы будем раскрывать понятие «меньше» в этой книге, но для начинающих это: * Меньше возможностей * Меньше опций и настроек * Меньше структура компании * Меньше встреч и абстракций * Меньше …
Драматическая история Python и Zope
5
История языка Python Все началось в 1990 году, когда сотрудник голландского института CWI, тогда еще мало кому известный Гвидо ван Россум участвовал в проекте создания языка ABC. Язык был предназначен для замены языка BASIC, для обучения студентов основным концепциям программирования. Как-то Гвидо надоело заниматься этим на работе, он пошел домой и в течение пары воскресений на своем домашнем Макинтоше написал интерпретатор другого простого языка; он, конечно, позаимствовал некоторое количество идей из ABC. Гвидо стал его распространять через Интернет. На раннем этапе подключился довольно известный в Интернете человек Стив Маевский, который до 1996 года вел в Интернете страничку "Сравнительная критика языков программирования". Он тоже был (и до сих пор остается) поклонником Макинтоша, возможно, это их и сблизило с Гвидо. Гвидо в ту пору был фанатом комедийной серии BBC "Воздушный цирк Монти Пайтона" и назвал свой язык в честь Монти Пайтона или по-нашему, Питона (а не в честь змеи). Язык …
arrow_back_ios