All streams
Search
Write a publication
Pull to refresh
17
1.1
Кашлак Андрей @andreymal

User

Send message

Вы хотите вывести сигнатуру функции из тела функции — это гиблый путь, при котором любое мелкое изменение в функции может сломать обратную совместимость

Параметр передаётся не по ссылке.

Именно! А это означает, что функция получает полное владение параметром и, если захочет, может уничтожить его. А значит из этой гарантии следует, что использовать параметр после вызова функции нельзя (иначе рискуем получить use-after-free).

но функция отработала и Вернула долг!

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

И зачем?

Чтобы пользователь этой функции мог полагаться на явно объявленные гарантии, а не что-то там гадать про наличие или отсутствие долгов

Посетители Хабра и так всё это прекрасно знают, а те, от кого вам приходят письма, эту недостатью всё равно не увидят

Тысячи уязвимостей в сишных программах наглядно демонстрируют что стоит

умею ее дебажить

выяснять не стал

Ну вы лол конечно

Тогда почему такая проблема есть только у вас?

Ну значит у вас есть что-то другое, что отдаёт некорректные хостнеймы, иначе откуда их гугл взял бы

гуглим на предмет этой ошибки

У нас с вами точно один и тот же гугл? Мой гугл говорит, что некорректный хостнейм подсовывает Cloudflare

Мне вот даже интересно что я делаю не так, все вокруг жалуются, а у меня за примерно восемь лет пользования личным почтовым сервером не было НИКАКИХ проблем

Для начала — что такое «официальные дрова для интеловских ЦП» на линуксе? Официальный сайт интела предлагает дрова только для винды

Хотя в Firefox имеется очень интересное сообщение в консоли:

Макет был принудительно применён перед полной загрузкой страницы. Если таблицы стилей ещё не загружены, то это может спровоцировать отображение нестилизованного содержимого.

Видимо, если скрипт успеет загрузиться раньше стиля и стриггерит force reflow — тогда уже появляется шанс увидеть белую страницу. Поэтому не надо говнокодить в скриптах 🙃

Но в Chrome даже такого нет, страница ВСЕГДА чёрная (при всё ещё светлой системной теме)

Скриншоты на вкладке Performance, кстати, врут: они по неизвестной мне причине не захватывают чёрный экран, который я вполне отчётливо вижу

Так что пусть будет ещё одна гифка

сначала будет белая страница

Нет, не будет.

В моей вкладке Performance никаких белых скриншотов нет и страница всегда чёрная при светлой системной теме

При первом запросе к файлу html

Именно поэтому на гифке я захватил второй запрос, а не первый

А стоит ли игра свеч, если скрипт библиотеки весит 16 кб и 3.5 кб в gzip?

Сравните с Хабром: тема хранится в куках и задаётся бэкендом напрямую в html-коде — скрипт весит 0 байт, потому что JS здесь вообще не задействован. А так как браузеры ждут завершения загрузки стилей — никаких мерцаний на Хабре нет

вы всегда будете видеть дефолтный цвет системной темы

На Хабре — не вижу по вышеупомянутой причине

Потому что даже асинхронная загрузка библиотеки не вызывает никакого моргания.

Только потому что ваш пример очень маленький и ничего моргнуть в принципе не успевает.

Если же представить, что, например, скрипт на сервере обновился и нужно заново скачать его из интернета —

Всё замечательно моргает

Хм, Firefox ведёт себя странно: при F5 моргает белым, а при Ctrl+F5 моргает чёрным. Ладно, буду считать это багом Firefox)

Но реализацию через JS и localStorage я всё равно осуждаю: если выбранная мной тема отличается от системной, страница всё равно будет моргать (например, чёрным) даже в Chrome

Скорее всего можно ужать ещё, если не злоупотреблять format!ом и дженериками, но это уже в исходниках копаться надо

Information

Rating
1,521-st
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity