lynx logo
lynx slogan #00064
Привет! Сегодня у вас особенно незнакомое лицо.
Чтобы исправить это, попробуйте .

А ещё у нас сейчас открыта .




секретный шифр д-ра Тьюринга, O.B.E:

включите эту картинку чтобы увидеть проверочный код

close

тихоходка, маленький водяной медведь




   

№9137
4545 просмотров
13 ноября '18
вторник
5 лет 255 дней назад



Рейтинги у фильмов

Прикрутил рейтинги со звёздочками и переключатели: «смотрел-собираюсь» и к фильмам тоже, как было у книг.

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

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

Чем ещё занятна вот архитектура движка — надо так её воздвигать, чтоб пусть и через годы отчасти хотя бы немного её помнить, а отчасти потом уметь быстро найти что забылось. Это примерно как держать в голове всё внутреннее устройство бомбардировщика, который сам же некогда и спроектировал: помнить, что когда-то откуда куда проложил, почему именно так, отчего чуть левее вроде бы умнее, но категорически нельзя, тому были тогда свои причины, где потом его искать если потребуется, в какие потом ещё десять точек придётся заглянуть, чтобы и там всё соответственно настроить, поскольку решение комплексное и не в комплексе, при изменении части, не заработает, и как привесить ещё много всего полезного, когда понадобится.

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

Ещё, кстати, добавляет трудностей именно парадигма веба, со всем этим её разделением на взаимопроникающие уровни HTML-CSS-JS-PHP-SQL — кто разрабатывал обычное ПО, тот знает, насколько там всё проще и разумнее. И подобные задачи решаются в три минуты: масштабируемость любых функционалов идеальна. Но что делать, мы расплачиваемся за те концепции, что консорциум W3C принимал уже с 90-х, когда у хостеров ещё и SSI-то не работали. За всё это табличное тянущееся болото, так как-то с тех пор весьма вычурно и развивавшееся. Так что мы сами уже к началу нулевых давно к нему привыкли и перестали даже замечать его своеобразность.

Да, и главное, что среда разработки развита по-прежнему как в дремучие времена DOS, когда отладка кода не автоматизирована, не снабжена датчиками всего чего только надо, а требует мощнейшей интуиции: ага, если в базе вдруг дублируется запись, когда не должна — значит надо смотреть поля по которым её повторение всегда прежде успешно отлавливалось — точно, id сбит в 0 — но в другом месте он же работает — о, а тут у нас урл формируется в ином формате — ясно, явно там нужен числовой, берём id из другой константы: такие вещи должны быть в реальном времени по шагам выполнения дебаггера в одной куче в отдельной панели. Чтоб уж при сочинении кода краем глаза всё было видно: ой, а чего это у нас такое? а чего это он обнулён и не шевелится? Без особого написания отдельных строк вывода тупо в консоль для заинтересовавших вдруг интуитивно параметров. Но нет, для веба этот прогресс начала 90-х до сих пор выглядит чем-то немыслимым, о чём нечего и мечтать.


   


















Рыси — новое сообщество