V
V
Vasyl Kovbassa2016-12-24 22:28:35
css
Vasyl Kovbassa, 2016-12-24 22:28:35

Where is the limit of templating and automation?

I don't think I'm the only one who went through this. Please share your experience.
Half a year ago, as I began to delve into the world of WEB technologies , and since then I have been in search. The bottom line is that starting with simple HTML and CSS , I began to notice a huge amount of unnecessary gestures that I had to do every time. This is a copy- paste of previously written code and endless duplication of the same with minimal differences, and finally hellish navigation between hundreds of lines of multi-colored letters, as well as several hours of blunting due to an error that you can try to find in all this chaos.
Naturally, I began to look for ways to automate and simplify this process. First SCSS , then BEM approach , Gulp and some primitive plugins for breaking the terribly endless html sheet into some modules. After that , the Pug templating engine , which turned my idea of ​​layout upside down. And it’s already not enough for me to simply structure the code and follow the DRY principles , let’s make smart blocks ... Damn, I think it’s somehow dumb to write bam classes by hand all the time, but bem-tools somehow doesn’t rush, let’s invent a bicycle. And then there's pug mixinsin which there is no scope between child and parent blocks, because of which 20 new obstacles come out on the way to catch Zen and go to Nirvana , which means that a bicycle is needed here too. And then a bicycle for bicycles ... Eventually, my smart blocks become so smart that they will soon start sending me and going to spend the night with friends))). But seriously, I understand that on the way to simplifying the readability, support and reuse of a certain unit of code, I am constantly turning towards creating a universal entity that will program itself. Then I understand that I’m going the wrong way, moreover, in a day or two I myself can’t figure out how it all works (what kind of support can we talk about), I delete everything, create a new folder and again everything is in a circle ....
How to stop in time, how to see the line between common sense and insanity? Perhaps, also, are there any methodological recommendations on this topic?
I would be grateful for any advice!

Answer the question

In order to leave comments, you need to log in

7 answer(s)
O
Oleg, 2016-12-24
@werty1001

In my opinion, you need to write bicycles, especially at the initial stage, yes, maybe at first there will be only indecency, but in the end something worthwhile and convenient should turn out, and yes, everything that can be automated should be automated.
PS In order not to write classes by hand, I wrote this , it became much easier.

S
sim3x, 2016-12-25
@sim3x

emmet - enough without templates, and copy-paste

L
Lander, 2016-12-25
@usdglander

Не совсем про верстку, но актуально!
А вообще помните для себя одну важную вещь: лучшее - враг хорошего! Ставьте себя на место человека, который впервые увидит ваш код, поймёт ли он что к чему достаточно быстро чтобы поддержать его? Если нет, то дальнейшее усложнение не нужно.

R
R_void, 2017-02-28
@R_void

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

D
dhat, 2016-12-24
@dhat

Это ты еще компоненты не пробовал. Ну еще все впереди))

A
arezvov, 2016-12-30
@arezvov

Серебряной пули нет. Хоть утверждение высказано не по теме вопроса, но вполне подходит в качестве ответа.
С одной стороны хаос, с другой оверинжиниринг.
Понять же в какой мере нужно применять "средста автоматизации", а затем "средства автоматизации средств автоматизации" и т.д. можно только в условиях конкретного проекта: подготовленность команды, сроки, продолжительность поддержки и т.д и т.п.
Важно понимать, что каждый новый инструмент увеличивает порог входа в проект и приводит к затратам на поддержку этих инструментов. Затраты эти должны чем-то быть оправданы.
Вспоминаются рассуждения Стива Макконнелла, о том, что когда мы "пишем код", наша первая задача - борьба с его сложностью, и то решение лучше, которое проще для понимания. Если инструмент делает проект проще в целом, то это хороший признак.
Однако, сложность может быть не единственным критерием, в каждом проекте условия индивидуальные.

Александр Филиппенко, 2016-12-30
@alexfilus

Мне БЭМ как-то вообще не зашёл. Пользуюсь Emmet, SASS, Gulp, HTML includes.
Остальное, как по мне для крупных проектов с серьёзным фронтэндом. В силу специфики занимаюсь я магазинами и визитками, так что большая автоматизация тут и не нужна.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question