2008-01-31

yurikhan: (Default)

Сегодня было мне просветление.

Когда вышла Visual Studio .NET, все страшно тащились от фичи code outlining. Это когда по левому краю идёт такая полосочка, и везде, где открывается блок, на этой полосочке возникает [-]. Который можно ткнуть, и он превратится в [+], а внутренность блока свернётся.

Так вот, этот самый outlining есть зло. Потому что позволяет, сворачивая постепенно части кода, написать такую функцию, которая не поместится нормальному человеку в голову. (Эмпирическое правило 1: длина функции в строках не должна превышать IQ maintainer’а. Эмпирическое правило 2: длина распечатки функции шрифтом разумного кегля не должна превышать рост разработчика.)

yurikhan: (Default)

Открыл OpenOffice.org Writer’ом первый попавшийся документ, дабы его распечатать. Тут же, на ровном месте, нарвался на отсутствие поддержки базовых возможностей.

Есть такая вещь, как cross-reference. Это когда у меня есть нумерованный список (скажем, пунктов в договоре, или литературы) и я могу в любом месте на какой-нибудь элемент этого списка сослаться. Например:

  1. Начальник всегда прав.
  2. Если начальник неправ, см. п. 1.

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

Так вот, выясняется, что в OOo, чтобы такое работало, нужно сделать много лишних подпрыгиваний и приседаний и всё равно найдутся юз-кейсы, не покрытые этим workaround’ом. И эта ситуация тянется как минимум с 2001 года и обещает исправиться только в OOo 3.0.

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

Profile

yurikhan: (Default)
Yuri Khan

August 2018

S M T W T F S
   1234
567891011
12131415161718
19202122232425
26 2728293031 

Links

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2025-07-01 06:55
Powered by Dreamwidth Studios