[image]

HTML / CSS / JS

Споры про реализацию
 
1 4 5 6 7 8 19
IL Tico #13.01.2022 13:10  @спокойный тип#13.01.2022 12:02
+
-
edit
 

Tico

модератор
★★☆
с.т.> приносите нам жертвы (как вендору) - построим тёмный алтарь за разумные сроки )))

Дык да, data warehouse есть, data lake есть, почему не data altar? :F
   80.0.3987.14980.0.3987.149
+
-
edit
 

Tico

модератор
★★☆
Bredonosec> (мат опущен)
Bredonosec> но почему тогда "строка" превращается в число, когда начинаешь отнимать от неё?

Чтобы заставить писать юнит тесты, которую эту хрень ловить будут :F
   80.0.3987.14980.0.3987.149
+
+1
-
edit
 

Tico

модератор
★★☆
Bredonosec> и конечный продукт почему-то получается еще более громоздким и жручим, нежели то, что он должен был заменить и оптимизировать :D

Реальная жиза, как есть, там ведь ещё и feature creep свой будет. Удаётся отстоять только отдельные сверхважные куски функционала, которые могучими усилиями были сделаны так, чтобы убить их было сложно даже согласованными усилиями менеджмента и г**нокодеров. Но это только вопрос времени.
   80.0.3987.14980.0.3987.149
+
-
edit
 
Tico> Чтобы заставить писать юнит тесты, которую эту хрень ловить будут :F
>Но это только вопрос времени.
так вот почему у тебя слеза на аватарке ))))))))
   91.091.0
RU Gudleifr #13.01.2022 14:38  @Bredonosec#13.01.2022 12:35
+
-
edit
 

Gudleifr

опытный

Tico> Так и вижу, как ЗеКа из коллцентров пойдут к паханам за повышением - "мы ж теперь программисты, ля".
Ну, IT-шники-то ходят. А кто из них больше денег украл у бабушек, вопрос спорный.

Gudleifr>> Тем, что здесь не нужен поиск текстовых фрагментов по шаблону.
yacc> ???
Зачем искать по шаблону, если можно точно указать место?

yacc> Да - именно согласно структуре HTML
Что чаще мешает, чем помогает.

yacc> Т.е. это грубо CHAR(N)... GET... PUT...
Это одна ф-ия MID$... Работает по обе стороны от оператора присваивания. И, да, этого достаточно. Остальное - арифметика.
yacc> Напишете программу?
Типа, у Вас проблемы с сортировкой?

Bredonosec> кто сказал про "дважды"?
Спецификации CSS.

Bredonosec> 1. это не макро. Это стиль.
С этого и начался разговор. Стили не нужну. Нужны нормальные макро.

Bredonosec>Это г**нокодеры плохие, а не инструмент.
Это инструмент для г**нокодеров.

Bredonosec> но сейчас ведь именно это предлагаешь.
Нет, конечно.

Bredonosec> но здесь ты этот подход рекламируешь. А он очевидно нерационален.
"Просто Вы не умеете их готовить" ©

Bredonosec> плиз, не надо юродствования. Попробуй сделать авиабазу на "внешних форматах". Получишь г**но. Без кавычек.
Ну, хуже-то точно не будет.

Bredonosec> учился я вообще на летуна. То, что знаю это - просто потому что делал это.
Угу. Отличие в том, что инженеры задачи решают, а военные - выполняют.
   95.095.0

yacc

старожил
★★★
Gudleifr> Зачем искать по шаблону, если можно точно указать место?
Нет его у вас - вперед искать используя INSTR, зная что тэг называется td причем он внутри table c id="Students"
И для каждого тэга который нужно переставить
И да - никаких регулярных выражений

Gudleifr> Это одна ф-ия MID$... Работает по обе стороны от оператора присваивания. И, да, этого достаточно. Остальное - арифметика.
Да пожалуйста

yacc>> Напишете программу?
Gudleifr> Типа, у Вас проблемы с сортировкой?
Типа мне очень интересно, какой код вы сделаете
   92.0.4515.10792.0.4515.107

Gudleifr

опытный

yacc> Нет его у вас - вперед искать используя INSTR
Зачем? При загрузке HTML браузер видит в нем метку и сохраняет ее адрес в таблице. Плюс пара другая [сотен] меток - для стандартных точек самого браузера.

yacc> Типа мне очень интересно, какой код вы сделаете
Можете посмотреть в моих Заметках. Если интересно...
   95.095.0
EE Татарин #13.01.2022 16:51  @Zenitchik#13.01.2022 01:03
+
+2
-
edit
 

Татарин

координатор
★★★★★
Татарин>>Децимал-то с бесконечной точностью, как и полагается нормальному скрипту, чем не угодил?
Zenitchik> Всем. Вы реально хотите странного. IEEE-754 - единственный нормальный формат. Остальное - ересь.
Это религиозное?

Так чем "всем"-то децимал может быть хуже? Кроме скорости вычислений с вещественными числами (которая яваскрипту пофигу в силу скриптовости, да и дабл можно было прицепить отдельным типом, как прицепили инт64)?
Чем для скриптового языка, где есть неявная конверсия строки в число и обратно лучше децимал могу объяснить. Преимуществ много (выше пример с конверсией в тип ограниченной точности нагляден). А вот чем децимал тут хуже?

Татарин>> Но с чего бы ожидать невозможности или неверности оператора над вещественными числами
Zenitchik> С того, что остаток от деления дробных чисел - не рассматривается в математике.
Тогда почему он рассматривается в ЯС? :)

...

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

У нас скриптовый язык, создаваемый с нуля, причём синтаксис взят почти полностью у широко распространённых семейств языков именно с целью обеспечить мгновенный перпеход и лёгкое применение без чтения спек. Никаких практически значимых ограничений у создателя языка не было, это скрипт без всякого легаси.
Ну так какого фига-то? :)
С какого фига и как в голову залетела вообще мысль применять % к вещественным, а если она залетела (ладно, можно оправдать, почему бы и не расширить), то почему не реализовать оператор нормально? что помешало?
А теперь это поведение тянется из соображений совместимости.

...
Или вот регуляры (которые вообще созданы задолго до яваскрипта, и полная спека по которым давно написана).
var a = /a/g;
ОК?

a.test('ab');
a.test('ab');
и ещё раз, чтобы совсем понятно было:
a.test('ab');
Что выдаст в первом, во втором и третьем случае?

Блин, я понимаю, как так получилось, но вопрос-то иной: ЗАЧЕМ? ну зачем оно так получилось-то? Подумать нельзя было, что ли?
   96.0.4664.11096.0.4664.110
Это сообщение редактировалось 13.01.2022 в 16:59
RU Zenitchik #13.01.2022 17:00  @Татарин#13.01.2022 16:51
+
-
edit
 

Zenitchik

старожил

Татарин> Это религиозное?
Татарин> Так чем "всем"-то децимал может быть хуже?

Отсутствием NaN и Infinity. Ещё десятичной системой, но это менее важно.

> с целью обеспечить мгновенный перпеход и лёгкое применение без чтения спек.

Это была провальная идея. Такой переход - средство порождения г**нокодеров. Тогда об этом ещё не знали.

var a = /a/g
a.test('ab')
a.test('ab')
a.test('ab')

true, false, true

Потому что RegExp хранит состояние. Хотя ключ global и применение test - семантически не сочетаются.
   96.0.4664.13796.0.4664.137

yacc

старожил
★★★
Gudleifr> Зачем? При загрузке HTML браузер видит в нем метку и сохраняет ее адрес в таблице. Плюс пара другая [сотен] меток - для стандартных точек самого браузера.
Дерево DOM это и есть то, что разобрал парсер.
И вы же выступаете против него!
Так что на вход у вас - голый текст, как у браузера.
Вы сами так задачу поставили заявив:
"т.к. HTML уже организован в виде дерева (если угодно, объектно ориентирован), то макроязык для него совсем не обязан понимать, что такое дерево. Так, объектная ориентированность JS - одна из самых больших ошибок его проектирования"

Поэтому - вперед по тексту макроязыком вида Бейсик
   92.0.4515.10792.0.4515.107

Gudleifr

опытный

yacc> Дерево DOM это и есть то, что разобрал парсер.
Это нам не надо. Это HTML "знает" и без нас.

yacc> Поэтому - вперед по тексту макроязыком вида Бейсик
Вы посмотрели в Заметках? Там показано, насколько это просто.
   95.095.0

yacc

старожил
★★★
yacc>> Дерево DOM это и есть то, что разобрал парсер.
Gudleifr> Это нам не надо. Это HTML "знает" и без нас.
Значит по голому тексту и никак иначе
С вычислением позиций тэгов руками по INSTR

Gudleifr> Вы посмотрели в Заметках? Там показано, насколько это просто.
В каких заметках ?
   92.0.4515.10792.0.4515.107

Gudleifr

опытный

yacc> Значит по голому тексту и никак иначе
Нет. По таблице меток, известной браузеру.

yacc> В каких заметках ?
В моих.
   95.095.0

yacc

старожил
★★★
Gudleifr> Нет. По таблице меток, известной браузеру.
Какой таблице ?
Там есть дерево DOM - которое вам не нужно.
Дерево - это не таблица.
Так что текст.

yacc>> В каких заметках ?
Gudleifr> В моих.
Где эти заметки ?
   92.0.4515.10792.0.4515.107
LT Bredonosec #13.01.2022 17:33  @Gudleifr#13.01.2022 14:38
+
-
edit
 
Gudleifr> Ну, IT-шники-то ходят. А кто из них больше денег украл у бабушек, вопрос спорный.
не совсем понял, почему это в ответе мне.
Разделяй ответы разным людям, очень сильно путает.

Bredonosec>> кто сказал про "дважды"?
Gudleifr> Спецификации CSS.
чепуха.
хтмл может сам теги, аналогичные используемым в стилях, делать, но это подход через жопу.
я уже отвечал выше.

Gudleifr> С этого и начался разговор. Стили не нужну. Нужны нормальные макро.
кому не нужны?!?
Это ПРЕДСТАВЛЕНИЕ контента! А не выполнение макрокоманды!

Bredonosec>>Это г**нокодеры плохие, а не инструмент.
Gudleifr> Это инструмент для г**нокодеров.
г**нокодеры те, кто лепят всё вперемешку, а потом для смены запятой вынуждены писать всё заново с нуля, потому что в г**нокоде ничего не понять.
А структурирование - это наоборот правильный подход.

Bredonosec>> но сейчас ведь именно это предлагаешь.
Gudleifr> Нет, конечно.
именно да.

Bredonosec>> но здесь ты этот подход рекламируешь. А он очевидно нерационален.
Gudleifr> "Просто Вы не умеете их готовить" ©
умею. Но это г**нокодинг.
Примерно того же уровня, что вместо вывода данных в блок переменных, обьявляемых вначале, тупо вбивать их в код в виде текущих значений где угодно в теле программы.
После чего, внезапно, тоже придется переписывать всё с нуля, если изменится хоть что-то )))
Ибо в мусоре г**нокода разобраться, что куда всунуто, и как заменить, чтоб не посыпалось всё, тоже малореально ))

Bredonosec>> плиз, не надо юродствования. Попробуй сделать авиабазу на "внешних форматах". Получишь г**но. Без кавычек.
Gudleifr> Ну, хуже-то точно не будет.
та лааадно ))
А ты попробуй )))

Bredonosec>> учился я вообще на летуна. То, что знаю это - просто потому что делал это.
Gudleifr> Угу. Отличие в том, что инженеры задачи решают, а военные - выполняют.
Вот я и решаю задачи. А выполнение г**нокодинга "мне неважно как лучше, мне важно, чтоб вы заипались" - воспринимаю эээ... речью с матовым покрытием :D
   91.091.0
RU yacc #13.01.2022 17:35  @спокойный тип#13.01.2022 12:07
+
+3
-
edit
 

yacc

старожил
★★★
yacc>> Приехали.
с.т.> да, я тоже поржал ))) sed - потоковый редактор, получить\заменить\вставить - это его основная работа...а он не причём )))
Программа тяжело писалась и поэтому должна тяжело читаться :p
   92.0.4515.10792.0.4515.107
LT Bredonosec #13.01.2022 17:40  @Zenitchik#13.01.2022 17:00
+
-
edit
 
Zenitchik> var a = /a/g
Zenitchik> a.test('ab')
Zenitchik> a.test('ab')
Zenitchik> a.test('ab')
Zenitchik> true, false, true
Zenitchik> Потому что RegExp хранит состояние. Хотя ключ global и применение test - семантически не сочетаются.
А можно пояснить?
Почему это состояние меняется на обратное от проверки того же самого?
   91.091.0
RU Gudleifr #13.01.2022 17:49  @Bredonosec#13.01.2022 17:33
+
-
edit
 

Gudleifr

опытный

Bredonosec> хтмл может сам теги, аналогичные используемым в стилях, делать, но это подход через жопу.
Именно. Поэтому стили не нужны. Нужна макрогенерация HTML.

Bredonosec> Это ПРЕДСТАВЛЕНИЕ контента!А не выполнение макрокоманды!
Именно. Поэтому стили не нужны. Нужна макрогенерация HTML.

Bredonosec> г**нокодеры...
Все дальнейшее, до конца Вашего поста, не имеет никакого отношения к тому, о чем я говорю.
   95.095.0
EE Татарин #13.01.2022 17:51  @Zenitchik#13.01.2022 17:00
+
+1
-
edit
 

Татарин

координатор
★★★★★
Zenitchik> Отсутствием NaN и Infinity. Ещё десятичной системой, но это менее важно.
Что мешало их ввести-то? в новом скриптовом языке?

>> с целью обеспечить мгновенный перпеход и лёгкое применение без чтения спек.
Zenitchik> Это была провальная идея. Такой переход - средство порождения г**нокодеров. Тогда об этом ещё не знали.
Так зачем провальную идею провально реализовывать? Чисто из чувства последовательности, которое на этом и исчерпалось? :) Решили делать так, ну так сделайте так: решили сделать схожим - ну так желаемое поведение описано, схожий синтаксис должен порождать, очевидно, схожие результаты. С фига ли нет-то?

Опять же, хоть это и оффтопично, в чём-то схожий подход был с явой, с С++, с другими расширениями С-семейства (Борланд С++ буилдер, обжектив С), с C# и т.д. Во всех этих случаях получились нормальные языки, со своими особенностями, но вполне внутренне стройные, логичные, предсказуемым поведением.

(Не говорю о последних редакциях С++ - тяга к бесконечному расширению и улучшайзингу в условиях монотонно нарастающей сложности легаси должна была сказаться в какой-то момент... Но даже там чтобы почуять запашок нужно уйти глубоко в тонкости и воистину возжелать странного и обязательно странным способом, последовательно отвергая все альтернативы и не отвлекаясь на компромиссы пройти долгий путь до конца).

Zenitchik> Хотя ключ global и применение test - семантически не сочетаются.
О. Так тот же вопрос: зачем? Ну зачем?
   96.0.4664.11096.0.4664.110
Это сообщение редактировалось 13.01.2022 в 18:05
RU Gudleifr #13.01.2022 17:59  @Татарин#13.01.2022 17:51
+
-
edit
 

Gudleifr

опытный

Сделать как здесь?
Вы уверены, что хотите иметь дело с кодом, порождающим этакую хрень?


<!-- 10383045 -->
								<a name="p10383045"></a>
																		<div class="post pby26729 pto26961">
	<div class="head">
		<div class="to-left">
				<img src="//s.wrk.ru/f/ru.gif" class="flag" title="Россия, Санкт-Петербург" alt="RU"/>
										yacc
				 <a href="http://www.balancer.ru/g/p10383045">#13.01.2022 17:35</a>		 <span class="answer">@спокойный тип<a href="http://www.wrk.ru/tech/forum/2022/01/t114181_5--html-css-js.html#p10381869">#13.01.2022 12:07</a></span>				</div>
		<div class="to-right">
						 <div class="to-left"><img src="/_bors/i/thumb_up.gif" alt="+" onclick="ptrch(10383045,'up')" class="thumb-up" width="16" height="16" title="+" /></div>
 <div id="ptr10383045" class="to-left"><span style="color:green">+1</span></div>
 <div class="to-left"><img src="/_bors/i/thumb_down.gif" alt="-" onclick="ptrch(10383045,'down')" class="thumb-down" width="16" height="16" title="-" /></div>
 <div class="half-transparent to-left"><a rel="nofollow" href="//www.balancer.ru/tech/forum/edit.php?id=10383045"><img src="/_bors/i/edit-16.png" width="16" height="16" alt="edit" title="Редактировать "/></a></div>
			</div>
		
<div class="clear"> </div>
	</div>
<div class="body">
					<div class="avatar_block">

<div style="height: 100px; margin: 0px 0">
<a href="http://www.balancer.ru/users/26729/" class="avatar-image">
<img src="//s.wrk.ru/a/26729.jpg" width="100" height="100" alt="" />
	</a>
</div>

	
<div class="avatar-text avatar-26729">
<h4>
	<a href="http://www.balancer.ru/users/26729/">yacc</a>
	</h4>
	<h5>старожил</h5>		<a href="//www.balancer.ru/user/26729/reputation/?balancer_board_post__10383045" class="rep"><span class="rep" style="color: Gold">★★★</span></a><br/>		</div>
</div>
		

		
													
				<div id="pb_10383045" class="post_body">
									<span class="q"><b>yacc</b>>> Приехали.</span><br>
<span class="q"><b>с.т.</b>> да, я тоже поржал ))) sed - потоковый редактор, получить\заменить\вставить - это его основная работа...а он не причём )))</span><br>
Программа тяжело писалась и поэтому должна тяжело читаться  <img src="//s.wrk.ru/s/tongue.gif" alt=":p" title=":p" class="smile">
								</div>

				
					

		
<div class="postsignature">
	<span class="usig26729"></span> 	<span class="img_middle">
 <span title="Google Chrome 92.0.4515.107, Windows 7 [Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36]"><img src="/_bors/images/browsers/google-chrome.png" class="i16" alt="92.0.4515.107"/><img src="/_bors/images/os/windows-7.gif" class="i16" alt="92.0.4515.107"/></span>
	</span>
</div>

		
		
<div id="pfo10383045" class="post-footer-tools"></div>

		<ul class="postfooter">

	<li><a href="/_bors/ajax/post/info?post=10383045"  class="post_info_ajax"><img src="/_bors/i16/info.png" align="middle" alt="" /> инфо</a></li>
	<li><a href="/_bors/ajax/post-footer-tools?object=balancer_board_post://10383045" class="post_info_ajax"><img src="/_bors/i/tools.gif"  align="middle" alt="" /> инструменты</a></li>
	<li class="pages_select">
		<a href="//www.balancer.ru/tech/forum/post.php?tid=114181&qid=10383045"
			class="current_page reply_link">
					Ответить на сообщение
		</a>
	</li>
</ul>
			</div></div>

   95.095.0
EE Татарин #13.01.2022 18:02  @Bredonosec#13.01.2022 17:40
+
-
edit
 

Татарин

координатор
★★★★★
Bredonosec> Почему это состояние меняется на обратное от проверки того же самого?
Потому что тот, кто это делал, не очень понимает отличия test от exec, как и самого смысла test.
Реализация самих регекспов была наверняка содрана с каких-то открытых исходников, ну и внутри тот же test делает exec и возвращает булеан.

Ну так что вам ещё надо-то? всё ж работает? :) Даже лучше работает, чем ожидалось. :)
Вряд ли кто будет спорить, что тест в ЯС получился мощным инструментом, мощнее, чем где-либо. :)
   96.0.4664.11096.0.4664.110
RU Zenitchik #13.01.2022 18:19  @Татарин#13.01.2022 17:51
+
-
edit
 

Zenitchik

старожил

Татарин> Так зачем провальную идею провально реализовывать?

Затем, что её провальность не была очевидна в начале, а потом стало поздно.

Zenitchik>> Хотя ключ global и применение test - семантически не сочетаются.
Татарин> О. Так тот же вопрос: зачем? Ну зачем?

Что значит "зачем"? Ни разу этим не пользовался чтоли?
   96.0.4664.13796.0.4664.137
Это сообщение редактировалось 13.01.2022 в 18:45
EE Татарин #13.01.2022 18:21  @Gudleifr#13.01.2022 17:59
+
-
edit
 

Татарин

координатор
★★★★★
Gudleifr> Сделать как здесь?
Gudleifr> Вы уверены, что хотите иметь дело с кодом, порождающим этакую хрень?
Что именно с "хренью"(тм) не так? Плохо отформатирована?
   96.0.4664.11096.0.4664.110
RU Zenitchik #13.01.2022 18:22  @Bredonosec#13.01.2022 17:40
+
-
edit
 

Zenitchik

старожил

Zenitchik>> true, false, true
Zenitchik>> Потому что RegExp хранит состояние. Хотя ключ global и применение test - семантически не сочетаются.
Bredonosec> А можно пояснить?
Bredonosec> Почему это состояние меняется на обратное от проверки того же самого?

Потому что при первой проверке, регулярка запомнила позицию найденного символа в строке, и следующую проверку начала после него.
Второй буквы "a" в проверяемой строке нет, поэтому позиция была сброшена на -1.
При третьей проверке буква "a" снова найдена.

И, как я уже сказал, использовать регулярку с ключом global для функции test - это либо очевидный идиотизм, либо сомнительный способ подсчёта числа вхождений.
   96.0.4664.13796.0.4664.137
EE Татарин #13.01.2022 18:28  @Zenitchik#13.01.2022 18:19
+
-
edit
 

Татарин

координатор
★★★★★
Татарин>> Так зачем провальную идею провально реализовывать?
Zenitchik> Затем, что её провальность не была очевидна в начале, а потом стало поздно.
Не понял. Ладно, провальность концепции была неочевидна, концепция виделась верной. Пусть. Но почему она не была реализована? Концепция подразумевала максимальную похожесть и предсказуемость языка, за исключением мест, где это невозможно или где отклонение от прошлого оправдано какими-то очень существенными выгодами для программиста и продукта.
Почему случились отклонения от концепции?
Почему появились отличия ради отличий? Зачем?

И почему тогда ещё не поздно для c# и ява? Когда будет поздно, и почему сейчас этого никто не видит, создавая на том же с# вполне приличные продукты огромных размеров?

Zenitchik> Что значит "зачем"? Ни разу этим не пользовался чтоли?
regexp.test с глобальным ключом? Нет. Реально даже не понимаю: где может возникнуть нужда в таком и почему там недостаточно exec?
   96.0.4664.11096.0.4664.110
1 4 5 6 7 8 19

в начало страницы | новое
 
Поиск
Поддержка
Поддержи форум!
ЯндексЯндекс. ДеньгиХочу такую же кнопку
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru