SQL-запиту, а всередині цього SQL-запиту `CONCAT`-ами формувався HTML, котрий PHP потім вставляв в основний HTML
Я виконував один GIS-проєкт. Програміст, якого я найняв, написав алгоритм пошуку найкоротшого шляху в графі на вбудованих процедурах Postgres. :)
Лайнокод — це коли ти відкриваєш код та за пʼять хвилин йдеш шукати нове місце роботи. :)
a != undefined
!!a — за це я одразу reject тисну (implicit type cast). :)
Так, я розумію що це call expression.
Але. З точки зору логіки a & b = b & a, що не виконується у прикладі вище. Так, я розумію, що воно обчислюється зліва направо, та оптимізовано не виконувати наступні аргументи, якщо перший false. Так, я розумію що так воно в інших мовах також. Мені не подобається, що порушує правила логіки, та що воно не у функціональному стилі.
Мені так якось кандидат з Китаю на співбесіді відповів. Я закінчив співбесіду на цьому. :)
Я питаю “Tell me about the most interesting bug you encountered in your past projects”.
Так, є sort(), а є sorted(). :) Гарне питання для співбесіди.
>>> sorted([5, 2, 13]) [2, 5, 13]
Коли я бачу код
expression && console.log("something")
то раджу не змішувати statements та expressions та переробити на if. Тому що якось дивно виглядає expression, результат якого ніяк не використовується. Хочеться, щоб воно було у функціональному стилі. :)
Ми на трьох проєктах перенесли не-прод сервіси на окремий сервер на Hetzner за 40$ на місяць. Мінус ~$800 в рахунках від AWS. Ще суттєво виграли в швидкості деплою та взагалі в швидкості дев-застосунків.
Минулого року робили невеликий подкаст на цю тему Moving out of the cloud.
Поставив мету на рік зробити 51 відео. Два вже є. Ще 49 треба очікувати. :)
Вікторіє, дякую за YouTube-ембед. 🙌
Будь ласка.
А як цю задачу ви вирішили?
Чудова стаття, дякую!
було б вам цікаво побачити більше постів про адвансед баш
Так!
у випадку з python будет найгірший варіант поведінки у ванільному варіанті — все відпрацює і дасть False
Для цього в Python з версії 3.5 (вже як десять років) зробили анотації типів.
а java дасть ошибку компіляції в дефолтному варіанті
Ви плутаєте про перевірку на етапі компіляції (або type checking, тому що в Пайтоні немає компіляції) та валідації типів в рантаймі.
'Age': ['25', '30', '35']
Це приклад GIGO: "
Тому що ані динамічна, ані статична, ані магічна типізація не звільняють від перевірки даних при введені в памʼять.
"
у випадку відсутності анотацій код відпрацює
Наявність анотацій ніяк не впливає на виконання інтерпретатором.
>>> a: int = 1 >>> b: str = "1" >>> a == b False
Анотації впливають на поведінку IDE та type checkers, наприклад mypy.
Використання анотацій та mypy знайде проблему з int == str
UPD: для перевірки треба увімкнути strict-equality:
% mypy --strict-equality example.py
example.py :4: error: Non-overlapping equality check (left operand type: "int", right operand type: "str") [comparison-overlap]
1. Тому що алгоритми на графах пишуть студенти, щоб вивчити дискретну математику. Професійні програмісти беруть готові бібліотеки. Його код ми викинули, замінили на NetworkX. Що зекономило на багато годин на розробці та налагодженню його процедур.
2. Він не зміг до алгоритму написати юніт-тести.
3. Він не зміг налаштувати налагоджувач, щоб виправити помилки в алгоритмі.
Я бачу в вас в профілі DBA-досвід. Буду вдячний, якщо підкажете, як налаштувати відладку вбудованих процедур в Postgres. Я не одужав.