Новые книги

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

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

Примеры я буду приводить на языке Object Pascal. В основном я работаю на нём, пишу на Delphi. Предвидя нападки со стороны поклонников C-подобных языков, скажу два тезиса:
В бизнесе да и в жизни уже не так важно, что именно вы делаете. Гораздо важнее то, как вы это делаете.

Дов Сайдман, основатель и CEO компании LRN, на страницах своей книги убедительно доказывает: моральные «факторы», прежде считавшиеся «факультативными», определяют сегодня ваш успех. Только ориентируясь на нравственные ценности, выстраивая отношения на основании доверия и заботясь о собственной репутации, вы сможете обойти конкурентов и преуспеть в бизнесе и в жизни.

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

Linux Networking

Сети и Linux

Поскольку Linux результат совместных усилий программистов во всем мире, она не была бы возможна без глобальной сети. Так что не удивительно, что на ранних стадиях разработки много людей стали работать над сетевыми возможностями. Реализация UUCP была в Linux почти с самого начала, а TCP/IP появилась осенью 1992, когда Ross Biro и другие создали пакет Net-1.

После выхода Ross из активной разработки в мае 1993, Fred van Kempen начал работать над новой реализацией, переписывая главные части кода. Этот проект был известен как Net-2. Первый публичный выпуск Net-2d был сделан летом 1993 (как часть ядра 0.99.10) и с тех пор поддерживался и расширялся несколькими людьми, особенно Alan Cox. Первоначальная работа Алана была известна как Net-2Debugged. После тяжелой отладки, многочисленных усовершенствований и выпуска Linux 1.0 он изменил название на Net-3. Net-3 был далее разработан для Linux 1.2 и Linux 2.0. Ядра 2.2 и более поздние используют поддержку сети Net-4, которая остается стандартным пакетом на текущий момент.

Net-4 Linux Network предлагает широкое разнообразие драйверов устройства и продвинутых свойств. Стандартные протоколы Net-4 включают SLIP и PPP (для работы с последовательными линиями), PLIP (для параллельных линий), IPX (для Novell-совместимых сетей, которые мы обсудим в главе 15 ), Appletalk (для сетей Apple), AX.25, NetRom и Rose (для любительских радиосетей). Другие стандартные свойства Net-4 включают IP firewalling, IP accounting (обсуждаются позже в главе 9 и главе 10) и IP Masquerade (обсуждается позже в главе 11). IP tunnelling поддержан в паре различных разновидностей и продвинутой стратегии маршрутизации. Поддерживается очень большое число устройств Ethernet. К тому же, есть поддержка многих плат FDDI, Token Ring, Frame Relay, ISDN и ATM.

Дополнительно, имеется ряд других свойств, которые значительно расширяют гибкость Linux. Эти свойства включают реализацию файловой системы SMB, что позволяет работать с lanmanager и Microsoft Windows. Пакет называется Samba, написан Andrew Tridgell. Есть поддержка Novell NCP (NetWare Core Protocol).

Различные полосы разработки

Fred продолжил разработку после того, как Net-2Debugged был сделан официальной сетевой реализацией. Эта разработка привела к пакету Net-2e. Fred пытался стандартизовать интерфейс драйверов устройств (Device Driver Interface, DDI), но сейчас работа над Net-2e уже закончена.

Другая реализация работы с сетями TCP/IP исходила от Matthias Urlichs. Он написал драйвер ISDN для Linux и FreeBSD. Для этого драйвера он интегрировал часть BSD-кода работы с сетями в ядро Linux. Этот проект также уже свернут.

Было много изменений, они и сейчас вносятся, поскольку разработка Linux не закончена. Иногда это означает, что изменения также должны произойти в другом программном обеспечении типа сетевых инструментальных средств конфигурации.

Сетевая реализация Net-4 стала стандартом и используется на очень большом числе машин во всем мире. Много работы было выполнено по улучшении эффективности Net-4, и теперь она конкурирует с самыми лучшими реализациями, доступными для тех же самых аппаратных платформ. Linux распространяется в среде Internet Service Provider и часто используется, чтобы формировать дешевые и надежные серверы World Wide Web, е-mail и news для этих организаций.

Где взять код

Последние устойчивые ядра Linux могут быть найдены на ftp.kernel.org в каталоге /pub/linux/kernel/v2.x , где x четное число. Последние экспериментальные ядра Linux могут быть найдены на ftp.kernel.org в каталоге /pub/linux/kernel/v2.y , где y нечетное число. Есть зеркала этого сайта по всему миру.