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

User

Send message

Ещё даже пары лет не прошло как раст релизнулся, просто не успели же ещё ничего накодить, это вам не фигак-фигак и в продакшен, ну шо Вы ей Б-г прям как маленький :)

и прочие Дропбоксы

Действительно

Поглядел исходники mysql_real_escape_string — она ровно тем же самым и занимается)

C++ позволяет выстрелить в ногу, если случайно забыть про меры предосторожности. Rust позволяет выстрелить в ногу, только если явно воткнуть в код стопицот предупреждений «да, я в здравом уме и твёрдой памяти хочу выстрелить в ногу ради всегобщего блага».


А остальное касается любого другого языка, сабжа в том числе, и на ООП свет клином не сошёлся

Это да. Но pep8 настаивает на чётырёх пробелах, подключаем pylint для проверки сего и можно жить

невидимые символы являются значимыми лексемами

Только в начале строки. А так как все всё равно форматируют код лесенкой, это не является проблемой

А это ещё целая тема для срача, минус ли «не для средних умов» или таки плюс :D


Но вообще я считаю себя весьма посредственным «средним умом», но после питона основы раста выучил довольно легко, и в чужом коде уже доводилось копаться без особых проблем, так что возможно всё не так уж плохо)

Если есть альтернативы, это может быть и плюсом, не стоит подпускать ООП головного мозга)

Вот и я о том же

Например, в Rust для всего этого предоставлены довольно удобные альтернативы, которые юзать иногда таки сильно проще чем классическое ООП (композиция, типажи, функции у структур (не экземпляров), Option/Result, замыкания итп), возможно в Go тоже что-то такое есть

Go запускается непосредственно на железе

Rust тоже.


Код, написанный на Go, легко поддерживать.

Сложно назвать легко поддерживаемым код на языке, в котором можно случайно забыть написать «if err != nil». Rust за это надаёт по ушам ещё при компиляции, да даже C++ выкинет исключение во время работы.


Классов в Rust нет, наследования нет, конструкторов нет, исключений тоже нет (про остальное точно не помню)


Go почти так же эффективен как С/С++

Rust тоже


Синтаксис Go очень стабилен

Подозреваю, синтаксис Rust ещё более стабилен)


Go поддерживается Google

Rust поддерживается Mozilla и целым сообществом и используется много кем


Горутины, думаю, можно заменить на Futures и в будущем async/await.


А ещё у Rust zero-cost abstractions и отсутствие gc.


И почему же мы должны учить Go, а не Rust? :)


(на правах вброса:)

Зачем всё то что не в белом списке, достаточно просто экранировать вообще всё) Неважно, для баз или чего-то ещё

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

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

А теперь по-русски и с полным примером вместо непонятного огрызка, пожалуйста

От всего перечисленного спасёт банальнейший PDO. Он сам всё проверит и экранирует как надо.


А от XSS спасёт банальнейшее принудительное экранирование всех выводимых переменных, которое есть в любом нормальном шаблонизаторе. Ну и jevix и аналоги, если html всё-таки нужен.

Здесь я отвечаю «давайте, потому что хороший сайт должен уметь работать без js» и меня закидывают помидорами и яйцами.)

Это дело всё ещё нетрудно перезагрузить. Всю страницу или только список подгрузить через AJAX — неважно, но я не вижу смысла как-то ещё усложнять фронтенд в данном случае. Даже если рассматривать экономию трафика и времени на парсинг html, она получается микроскопическая (даже если список большой — напомню, 2017 год на дворе) и, имхо, не стоит того. А анимации не нужны (если только так не скажет заказчик, с которым спорить себе невыгодно — но это уже совсем другая история)

Как я отметил ещё в скобках в своём самом первом комментарии, сайтов, на которых без интерактивщины с js вообще никак (тот же условный trello), я не касаюсь. А вот для большинства других ситуаций перезагрузка страницы таки является достаточно быстрым и достаточно интерактивным способом обновления контента. И я не понимаю, зачем жертвовать примитивностью и понятностью фронтенда ради экономии сотни миллисекунд и пары килобайт трафика. (И не забываем про PJAX.)

Information

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