Якщо час, витрачений на написання та читання статті, константа,

левова частка його повинна бути витрачена Письменником.

А. А. Шалыто

Введення

Пошук у Google за словами «як писати статті» видає 664 сторінки. Статті з такою назвою писали такі поважні люди, як Р. А. Шенгелі, А. А. Шалыто та ін Але в цілому, 664 сторінки — це, звичайно, перебір. Зрозуміло, що велика частина цього моря писанини складена людьми, писати статті не вміють. Якщо б вони вміли писати статті, вони їх писали б, а не вчили інших. Зізнаюся чесно – я не знаю, як треба писати статті. Натомість за час свого редакторства я надивився на таку кількість виродків, якого вистачило б на пару пітерських Кунсткамер, і ще залишилося б на кілька курортних виставок. Тому я досить добре уявляю собі, що при цьому робити не потрібно. Ось про це я і спробую розповісти нижче.

Так начинанья, взнесшиеся потужно,

звертаючи в бік свій хід,

втрачають ім’я дії…

Шекспір.

Як правило, робота над статтею починається зі складання плану. Можна, звичайно, покластися на натхнення і писати «як піде». Однак закінчити статтю за один день мало у кого виходить. А відновити на наступний день (тим більше – через тиждень) послідовність вчорашніх міркувань вдається далеко не завжди. Результат передбачуваний – оповідання, набравши розгін, звертає в бік. На цьому місці половина читачів, образно висловлюючись, летить в кювет. Розповіді про складні речі взагалі личить певна плавність і статечність – тут краще орієнтуватися на «Роллс-Ройс», а не на «Феррарі».

Зрозуміло, це в основному відноситься до статей, орієнтованим на солідне, всебічне висвітлення предмета. Однак щось подібне трапляється і з невеликими статтями, що розповідають про який-небудь цікавою дрібниці. Мова про авторські відступи від теми. Оскільки автор, як правило, людина знає дуже багато, в процесі викладу йому приходить на думку аналогія, випадок з життя або дуже важливе уточнення, яких просто не можна не поділитися з читачем. Однак в процесі цього відступу від теми йому приходить в голову (див. вище). На третьому витку стаття остаточно сходить з орбіти і мчить кудись вже сама по собі, без керма, вітрил і гальм. Зрозуміло, потім автор спохвачується і повертається до вихідної теми – але читач до цього моменту встигає забути, з чого все починалося.

Ми, ви і я

Цікаво спостерігати, як автор, який почав писати від третьої особи («Автор вважає»), до другої сторінці з’їжджає на «Ми будемо використовувати», а через ще пару абзаців, остаточно зневірившись, каже: «візьміть ось це і викличте геть». Ні в одній з цих форм немає нічого поганого. Проте їх не варто використовувати як попало. Інакше можуть виникнути курйозні ситуації.

До речі, російська мова, на відміну від англійської, куди більш терпимо до безособовим оповідних пропозицій, що не містить особистих займенників. Там, де в англійській статті неодмінно буде сказано: «you’d use it for smth.», російська прекрасно обійдеться чимось на зразок «Це використовується так-то і так-то». Між іншим, велика кількість особових займенників чітко вказує, в якому місці автор кинув викладати предмет своїми словами і вставив здоровенний шматок з MSDN. ? Я не кажу, що це погано для суті статті, я просто хочу сказати, що це вносить стилістичний різнобій.

Пролог, епілог і щось між ними

Вступ і висновок є майже в кожній статті. Сама стаття, яка за ідеєю повинна знаходитися між ними, є не завжди – але введення і висновок пишуть практично всі. В попередніх пропозиціях важливі слова «майже» і «практично». Насправді це означає «далеко не завжди». Трапляються статті, обриваються на півслові, хоча не так складно, наприклад, подякувати читача за те, що він дочитав ваш опус до кінця. Повірте, це часто гідно подяки.

Епічний зачин – вірна ознака недосвідченого автора. Якщо автор починає статтю про взаимоблокировках, наприклад, з того, що довгі роки Microsoft, IBM та інші Ораклы билися над цією проблемою, як буржуїни з Червоною Армією, значить (з ймовірністю 90%), далі він розповість нам про те, як він особисто її вирішив – і це буде черговим винаходом двоколісного екіпажу, що приводиться в дію мускульною силою. Справедливості заради треба сказати, що бувають і дійсно оригінальні міркування, і навіть багато – але їх автори, як правило, скромніше.

Хочеться сказати ще і про так званий «американському» стилі – коли укладення практично дослівно повторює вступ. Американці, до речі, так пишуть нечасто, зате індуси і китайці просто обожнюють такі збочення. Не вірите – див. проект коду (codeproject). Нічого хорошого в такому дублюванні немає – кілька зовсім непотрібних абзаців, розповідають читачеві, про що, власне, була тільки що прочитана їм стаття. Якщо вже ви не знаєте, чим закінчити статтю, згадайте, а заради чого потрібно те, про що ви писали?

Телепатія на марші, або сага про праски

У мужика не попрасовані штани. Але праски у нього немає.

Він вирішує позичити праска у сусідки.

Йде до сусідки і по дорозі розмірковує:

«Зараз я прийду, попрошу праска.

Сусідка – культурна жінка, запропонує зайти, випити чаю.

Я не зможу відмовитися, зайду.

Те-се, почнуться розмови, а жінка вона гарна, та й я начебто нічого.

Запропонує чогось міцнішого – теж не зможу відмовитися.

Так і до ліжка дійде. А я – людина чесна, доведеться одружується, і що далі?

Пелюшки, сорочечки, сварки, розлучення…»

З цією думкою він підходить до дверей сусідки і натискає на кнопку дзвінка.

Двері відчиняються, і мужик випалює:

«Та пішла ти зі своїм праскою!»

(с)старий анекдот

Цей анекдот відтворюється у кожної третьої статті надходять до редакції. Дивно, але факт – серед читачів рідко трапляються пророки і ясновидці. Вони і в житті-то нечасто зустрічаються. Що з цього випливає? Те, що всі міркування автора повинні бути викладені повністю. Читач, як правило, не в змозі відтворити хід думок автора, навіть якщо у нього є вихідна посилка і кінцевий результат. У тому місці, де хід міркувань пропущено, читач неминуче «спотикається» – тобто відволікається від суті статті, намагаючись зрозуміти, що мав на увазі автор. Знову включитися в оповідь йому непросто, особливо якщо стаття присвячена якому-небудь складного питання. Кілька таких помилок поспіль гарантовано змусять читача кинути цю статтю.

Ще один різновид тієї ж помилки – використання раніше не введених термінів і нерасшифровываемых абревіатур. Зрозуміло, будь-яка стаття передбачає наявність у читача загальної підготовки і деяких знань з обговорюваного питання. Але краще все-таки припускати, що читач – ламер. Оскільки гуру статей все одно не читають – вони їх пишуть.

Науковий і наукоподібний

Різниця між цими термінами не менше, ніж між «людським» і «людиноподібних». Там, де науковий стиль передбачає чіткі і однозначні формулювання, наукообразная стаття тоне в мішанині невпопад вставлених іноземних слів і великовагових обертів. Там, де нормальна людина обійдеться десятком слів, автору науковоподібної статті буде потрібно не менше тридцяти. Замість «ця штука робить те і це» він напише «даний об’єкт при введенні в дію починає активність, зумовлену його конструкцією і вихідним призначенням». Причому зрозуміти навіщо потрібна ця штука, і що вона все-таки робить, з науковоподібної статті, швидше за все, не вийде – читач закине її раніше, ніж автор дійде до пояснень.

Крім того, науковий стиль зобов’язаний бути логічним, тобто послідовним, несуперечливим і повним. Наукообразие ж найчастіше приховує недоліки викладу, підміняючи відсутність чітких передумов та пояснень заплутаними і громіздкими формулюваннями. Розрахунок, очевидно, на те, що читач, не розібравшись в написаному, подумає: «який Розумний чоловік! Далеко мені до нього». Однак наш журнал (і сайт) читає чимало висококваліфікованих спеціалістів, які не піддадуться на цей прийом. Мало того, серед них напевно знайдуться фахівці саме в цій області, які не забаряться виступити з знищують коментарями. Це не просто зведе нанівець можливий ефект – це його зверне в негативну величину.

Можливо, багато хто автори потрапляють у пастку наукообразия не по своїй волі, а намагаючись слідувати певним зразкам, які вони беруть за еталон наукового стилю. Біда в тому, що вони суть приймають форму. Дійсно хороша наукова стаття, як правило, написана простою і зрозумілою мовою.

У наукоподібної стилю є, проте, незаперечне достоїнство. Якщо нормально написана стаття займає 10000 знаків, аналогічна їй наукообразная займе не менше 25000. При визначенні гонорару така відмінність більш ніж істотно. Але тут постає питання – для чого ви пишете? У RSDN Magazine не платять гонорарів, так що скористатися цією перевагою не вийде. А якщо ви і справді сповнені альтруїзму і бажання наставити ближнього на шлях істинний – полюбіть його хоча б трохи, і не змушуйте продиратися крізь наукоподібний бурелом.

Локація инстанциаций криптування в кустомизированных аплікаціях

Програмування – галузь, засмічена термінологічними ляпсусами, як ніяка інша. Перераховувати ці ляпсуси можна дуже довго, втім, ви й самі легко згадайте безліч прикладів. Найбільш поширене застосування кальок з англійської (від слова «калька», а від слова «каліка» – суть не зміниться). Цей підвид виродків з’являється, коли автор у творчому пориві стахановськими темпами ліпить нетленку, думаючи:»Потім поправлю». «Потім», як правило, настає після повернення матеріалу автору з редакторськими коментарями. Ще одне джерело – автору просто не вдається підібрати вдалий термін. І, нарешті, третій – спілкування у форумах і читання невдалих, ніким ніколи не редактированных статей в Мережі. Доводиться констатувати – Internet, невичерпне джерело інформації про все на світі, є заразом і основним джерелом словесного сміття.

Кальки, які збігаються за звучанням з наявними словами, просто неприпустимі – як, наприклад, наведена в заголовку «локація» у значенні «місце розташування». «Локація» у російській мові – це визначення місцезнаходження об’єкта, тобто процес. У слова «аплікація» теж є конкретне значення в українській мові – це «спосіб створення орнаментів, зображень шляхом нашивання, наклеювання на тканину, папір і т. п. різнокольорових шматочків якого-небудь матеріалу (тканина, папір, хутро, соломка і т. п.) іншого кольору або вичинки, а також орнамент, зображення, створені за такого способу, що додає їм особливу рельєфність – ВІКІПЕДІЯ».

Якщо ви збираєтеся вжити термін, російський аналог якого підібрати важко, не пошкодуйте часу – справьтесь зі словниками та перекладацькими сайтами (хоча б поставте питання на нашому форумі «Проблеми перекладу»), подивіться, як цей термін переводили до вас. Якщо словника під рукою немає, скористайтеся сайтами www.lingvo.ru, www.translate.ru і www.gramota.ru. Якщо так нічого і не знайшлося, можливо, кращим варіантом буде використовувати англомовний варіант. Пам’ятайте, що такі слова не схиляються, але якщо це призводить до поліпшення доступності та зрозумілості, редакція закриє на це очі.

Якщо ви знайшли хороший варіант перекладу, але розумієте, що він не загальноприйнятий, і вас можуть неправильно зрозуміти, достатньо ввести його в початку статті, написавши, наприклад, що під словом «втілювати» в цій статті, у подальшому буде розумітися переклад слова «instantiate». У будь-якому випадку, навіть якщо використовуваний вами переклад широко поширений, приведіть при першому вживанні англійський варіант в дужках. Гірше від цього не буде, а багато ще й скажуть «спасибі».

Особливий випадок представляють словосполучення. Наприклад, «key container» – це «сховище ключів» або, якщо завгодно, «контейнер ключів». Але ніяк не «ключовий контейнер». «Ключовою» – це «має ключове, вирішальне значення», а «ключовий контейнер» — це «головний, має ключове значення, контейнер». Подібні помилки зустрічаються досить часто, в основному із-за спроб дослівного перекладу англомовної фрази. Наприклад, «default value» регулярно намагаються перекласти як «умолчальное значення». У російській мові немає слова «умолчальное», правильніше, звичайно, використовувати «значення за промовчанням», але і цього часто буває недостатньо. Ось простий приклад:

SQL Server sets the referencing column values of the related rows in the referencing table to the default value of the column.

Неправильний переклад:

SQL Server встановлює значення відповідних рядків посилається колонки значення колонки за замовчуванням.

Тут легко плутається «значення, яке використовується в даній колонці за замовчуванням» і «значення колонки, використовуваної за замовчуванням».

Тому правильніше буде написати пару зайвих слів:

SQL Server встановлює значення відповідних рядків посилається колонки у значення, яке використовується в цій колонці за замовчуванням.

Однак перекладом справа не обмежується. Є багато термінів, які люди бездумно вживають разом, не піклуючись про значення отриманого кадавра. Наприклад, поєднання двох цілком осмислених порізно термінів може виявитися абсолютно безглуздим. Результат приголомшує – усі слова в реченні зрозумілі, але зрозуміти пропозиція не вдається!

Редакційні коментарі і правка

До речі, про редакторських коментарях. Редактор – це професійний читач. Він не менше автора хоче, щоб стаття вийшла хорошою, і абсолютно не зацікавлений у різного роду суперечках і конфліктах з автором. Якщо редактор надіслав багато коментарів – значить, він просто сумлінно ставиться до своїх обов’язків. Заперечувати редактору безглуздо – ви не зможете так само заперечити всім читачам журналу, а у багатьох з них, повірте, виникнуть ті ж питання, що і у редактора. Точно так само не потрібно пояснювати що-небудь нерозумному редактору – пояснювати потрібно читачеві.

Трапляється так, що автор ображається на зауваження редакції, або вважає питання редакторів відверто дурними. Повторюся: редактор – це перший читач вашої статті. Тільки це за визначенням прискіпливий читач. Він може чудово розуміти, що хотів сказати автор, але він так само відмінно бачить, що необізнаний читач дане місце статті не зрозуміє. А якщо вже і редактор не розуміє написаного, швидше за все, це місце не зрозуміє більшість читачів. Нормальна реакція на коментар – виправлення статті. Якщо ви не розумієте, що і як слід змінити, спробуйте «на пальцях» пояснити редактору у відповідному коментарі, що ви намагалися сказати, і він спробує підібрати потрібні слова.

ПРИМІТКА

Не пояснюйте редактору те місце, яке він не зрозумів. Виправте це місце в статті так, щоб його зрозумів будь-який читач.

І ще одне. Дорогі колеги, ми намагаємося бути в коментарях гранично ввічливими і коректними, тільки от виходить не завжди. ? Тому, зустрівши єхидний редакторський коментар, спробуйте уявити, що в цьому місці скаже простий читач, не зв’язаний вимогами пристойності.

Обсяг журнальної статті…

Цей стандартний зачин зазвичай триває словами «…не дозволяє розкрити тему у всій повноті» або подібними їм. Найчастіше цими словами відзначається або те місце, де автору стало ліньки писати далі, або межа його пізнань. Насправді редакція ніколи не відкине гарну велику статтю – швидше її розіб’ють на кілька частин і будуть публікувати з продовженням. Тому залиште цю фразу мені для службового користування. Я її ставлю в тому місці, де визнаю, що автор елементарно відволікся від спостережння через розмову.

Орфографія та пунктуація

Присвячується VladD2

Орфографія і пунктуація – це, звичайно, турбота редактора і коректора. Але в спеціалізованих виданнях з грамотністю, як ви можете бачити на багатьох прикладах, зовсім не так добре, як в суспільно-політичних і навіть науково-популярних. Проблема в тому, що коректор багато термінів бачить у перший раз, а не розуміє практично всі. Тому він їх або не править, сподіваючись на редактора, або – що ще гірше – править за власним розумінням. Редактор, в свою чергу, все розуміє, але сподівається на коректора. Особливо схильні до цієї напасті коментарі в коді і ілюстрації – тому що їм перепадає найменше уваги. Всі вважають, що це не по їх частини. Науковий редактор вважає, що все, що по-російськи – це до літературної, літературний – що код у веденні наукового, а ілюстрації – це взагалі до художника, коректор ж обачно зовсім не зачіпає ні коду, ні картинок – від гріха подалі. Результат може бути вкрай невтішним. Тому не вважайте, що редакція виправить всі ачепятки і проставить всі коми. Згадайте, що все-таки ви пишете рідною мовою, і поставтеся до нього, як до рідного. До речі, «ви» в російській мові пишеться з великої літери тільки при особистому зверненні.

Коректність висновків

Статті, пов’язані з програмуванням – це суто технічні статті, якщо вони, звичайно, не відносяться до розділу «Колеги, посміхніться». Питання віри в цих статтях недоречні. Якщо ви робите якесь твердження, воно повинно бути належним чином обґрунтоване – тестами, вимірами або логічними висновками.

Тести

Багато авторів, виконуючи в статтях порівняння будь-яких продуктів, підходів або алгоритмів, вважають свої тести настільки тривіальними, що навіть не замислюються про можливість абсолютно банальних помилок в цих тестах. Тому вони не переймаються перевіркою свого коду. Однак практика показує, що ймовірність помилок у, здавалося б, елементарних випадках, досить висока. Здатність робити помилки властива кожній людині, і винятків тут немає. Щоб уникнути подібних ситуацій, потрібно не просто перевіряти працездатність тестів, але і будувати їх так, щоб мати можливість легко перевірити правильність видаваних результатів. Наприклад, якщо ви порівнюєте продуктивність двох засобів розробки, скажімо, компіляторів в цілочисельних операціях, краще всього підібрати добре відомий алгоритм, що дає на виході не менш добре відомий результат. Так, алгоритм розрахунку числа Пі свідомо повинен видавати число Пі, а не що-небудь інше.

При перевірках результату теж необхідна обережність. Помилки можуть міститися не в самих алгоритмах, а в супутньому коді, який використовується цими алгоритмами. Наприклад, якщо ви тестуєте швидкість сортування і використовуєте при цьому зовнішні об’єкти або функції-компаратори, помилка може міститися в одному з методів порівняння. Перевірка результату, зроблена з допомогою того ж компаратора, швидше за все, не виявить проблеми. Тому перевірку результатів краще виконувати за допомогою окремого коду, по можливості не використовуючи ніяких зовнішніх компонентів. У згаданому випадку сортування оптимальної перевіркою буде банальний цикл, перевіряючий, що кожен наступний елемент більше попереднього, і обчислює контрольну суму, яку можна звірити з контрольною сумою, обчисленою для неотсортированного масиву.

Пам’ятайте про те, що на тест можуть впливати невраховані зовнішні умови. Невраховані тому, що автор на момент створення тестів не здогадувався про їх існування. Можливо, ви здивуєтеся, але перешкодами можуть виявитися такі речі, як оптимізації, що виконуються сучасними процесорами. Наприклад, спроба заміряти швидкість виклику функції інтерфейсу шляхом виклику її в циклі, швидше за все, не дасть жодних розумних результатів. Справа в тому, що навіть якщо такий виклик не буде усунутий розумним оптимізуючих компілятором, на його швидкість все одно вплине оптимізація, що виконується процесором. Сучасні процесори містять механізм пророкування розгалужень, прекрасно працює при таких тестах, але безсилі, коли виклик такої функції зустрічається в звичайному коді. Виходом з цієї ситуації може бути підбір алгоритму, інтенсивно використовує віртуальні виклики.

Загалом, підходите до своїх тестів критично, намагайтеся перевіряти всі, навіть самі неймовірні, припущення і, найкраще, створюйте кілька варіантів тестів для одного досліджуваного аспекту.

Масштаб

Якщо ви вирішили що-небудь звеличити, або навпаки, визнати істотним недоліком, подумайте, наскільки це вплине на кінцевий результат. Часто буває так, що автор, зачепившись за, в цілому, погану річ, робить з мухи слона, або представляючи її як панацею, або, навпаки, влаштовуючи над нею велике судилище. Між тим, факт може не варті виїденого яйця на тлі інших достоїнств і недоліків описуваної технології, мови або платформи.

Велосипед

«Я знайшов, як застосувати тут нестирающиеся шини з

поліструктурною волокна з виродженими амінними зв’язками

і неповними кисневими групами.

Але я не знаю поки, як використовувати регенеруючий

реактор на субтепловых нейтронах. Міша, Мишок! Як бути з реактором?»

Придивившись до пристрою, я без праці дізнався велосипед.

А. і Б. Стругацькі, » Понеділок починається в суботу.

Це славне пристрій для переміщення в просторі вже згадувалося вище, але повторитися все ж варто. Якщо вам прийшла в голову геніальна ідея, до якої поки що не додумався ніхто інший, не поспішайте створювати трактат на цю тему. Перевірте – можливо, ця ідея прийшла в голову не тільки вам. Наприклад, викладіть її коротко у відповідному за тематикою форумі – наприклад, у «Філософії програмування» на RSDN. Якщо ідея не нова, ви дізнаєтеся про це буквально за день-другий – у нас повно бажаючих крикнути «Баян» з будь-якого приводу.

Те, що ваша ідея виявилася не тільки вашої, ще не означає, що ваші роздуми не мають ніякої цінності. Часто буває так, що людина, яка обмірковує «з нуля» щось вже відоме, знаходить власний неординарний погляд на проблему. Це може виявитися цікавим для читачів.

Не бійтеся, що вашу ідею вкрадуть. Якщо ви все ж побоюєтеся злих конкурентів, запатентуйте ідею. Але в цьому випадку вам все одно доведеться доводити її новизну. ?

Висновок

Всі наведені помилки настільки типові, що викорінити їх не вийде ні однією статтею, ні шестисот шістдесятьма чотирма, згаданими у введенні. Однак, якщо після цієї статті комусь прийде в голову перед відправкою в редакцію перечитати свою статтю ще раз і щось виправити в ній, я вважатиму свою місію виконаною, адже це хоча б трохи зменшить кількість читацьких спогадів про найближчих родичів автора, редактора і моїх особисто.