Вже є одне питання на «Вільний мікрофон»: «Чому Selenium, а не Playwright?». Розповім свою точку зору. :)
А що ви очікуєте від ресайз? Є append, insert, extend. Зробити одразу потрібний розмір?
Я запускаю тести під дебагом в PyCharm та натискаю паузу, коли Селеніум нічого не робить. PyCharm показує місце, де зараз мої скріпти висять.
Наприклад, нещодавно робили це, щоб зрозуміти чому на компі у співробітника запуск теста займає 60 секунд. Виявилося, що у його провайдера була помилка та мережеве зʼєднання с сервером, звідки завантажувався драйвер, закінчивалося таймаутом (60 секунд). Ми написали провайдеру, та він за добу виправив. А чому працювало після 60 секунд? Тому що WebDriverManager має кеш попередньо завантажених драйверів. І коли перевірка нової версії закінчується тайм-аутом, то він брав готовий драйвер з кешу.
Доречі, я роблю Селенім + Пайтон мітап. Запрошую: dou.ua/calendar/52051
Повертав монітор в Розетку. Я його придбав, приніс додому, розкрив, зібрав, пропрацював день, мені не сподобався (з Маком погано працює), я розібрав, запакував, та повернув в Розетку. Вони повернули гроші.
Та й сам отримував товар, по якому було видно, що його хтось перевіряв. Але він цілком новий.
«Молодість — це недолік, який дуже швидко проходить». :)
Я професійним програмістом (це який працює з 9:00 до 18:00) став в 27. Витратив багато часу на навчання в університеті, аспірантурі, викладачем працював. Тому в вас в 15 дуже гарний вік, щоб вивчити програмування та знайти гарну роботу к 18 рокам.
Чи можливо потрапити на IT-проєкт у 17 років?
Так, можливо. Я особисто наймав на роботу талановитого першокурсника ХНУРЕ (Python, Backend). Що підвищило його шанси? Я був десь рік з ним особисто знайом, тому що він ще будучи школярем ходив на мій Python-гурток на якому показував свої здібності.
З цього можна зробити висновки:
1. Знайдіть спільноту та познайомтесь з усіма.
2. Покажіть ваші здібності: портфоліо на GitHub, пет-проджекти, технічні доповіді, особистий блок, ютуб-канал, пропонуйте безкоштовну допомогу.
3. Відкрийте телефон та подзвонить кожному та запитайте: «Я працював над створенням вебдодатків, SaaS-проєктів і eCommerce-рішень. Чи потрібна вам така допомога? Чи потрібна вашим знайомим така допомога?»
4. П. 3, але з телефона батька та матері: «Мій син працював над створенням... » (далі по тексту).
Я працював над створенням вебдодатків, SaaS-проєктів і eCommerce-рішень
«Talk is cheap. Show me the code.» — Linus Torvalds
Все реально, ви на на правильному шляху, в вас все вийде! Якщо буде потрібна особиста порада — будь ласка пишіть в особисті.
Ще додам до статті, що якщо треба ефективно зберігати масиви простих даних, то можна використати пакет array. Особливо, коли програміст розуміє, які дані будуть в масиві.
>>> import array
>>> a1 = []
>>> a2 = array.array('H')
>>> for i in range(50000):
... a1.append(i)
... a2.append(i)
>>> sys.getsizeof(a1)
444376
>>> sys.getsizeof(a2)
104750
>>> a2.itemsize
2
У цьому прикладі я обрав ’H’ — unsigned short (С type) — int (Python type), де кожен елемент займає 2 байта в памʼяті. Та це у 4 рази компактніше ніж стандартний масив.
Ще ці масиви зберігаються компактно у памʼяті, та центральний процесор буде ефективно використовувати кеш-памʼять.
Цілком дякую за дуже цікаву та змістовну статтю. Кожен програміст повинен знати, як воно там працює «під капотом». :)
Це називається paralysis by analysis — параліч через аналіз «що краще? може це? а може те?». І замість того, щоб вивчати та автоматизувати час гається на роздуми.
Приваблюють Cypress та Playwright? Супер! Почніть автоматизувати за допомогою цих технологій. Java або Python? Будь що, але пишіть скріпти автоматизації.
Мій особистий шлях — це Python + Selenium. Ми за допомогою цих технологій написали декілька тисяч тестів та змінювати пока що планів немає. Я розробив онлайн-курс де за 60 годин навчив десятки людей автоматизувати з нуля: Selenium + Python: автоматизація тестування веб-додатків.
Is it acceptable to use injections like this example below.
Так. Це т. з. Setter Injection.
Can it be considered as a good practice?
Так.
20 років тому Мартін Фаулер описав різні засоби для Dependency Injection: Inversion of Control Containers and the Dependency Injection pattern. Зверніть увагу на розділ “Deciding which option to use”.
Особисто я для тестування використовую unittest.mock.
Ось я робив лекцію з прикладами моків різних сервісів для тестування: Python Mock, MagicMock: мокаем веб-сервисы, базы данных (російською мовою).
написання коду на папірці
Нещодавно почав знову писати програми на аркуші. Такого стану потоку не відчував мабуть років з 10. :)
Перший компʼютер в мене зʼявився в 1990 або 1991, я навчався у другому або третьому класі. Батько зпаяв мені ZX Spectrum. Мати придбала книгу по Бейсіку. Я знайшов там першу програму: вона повинна була запитати моє імʼя та написати «Привіт, Вова!».
Я набрав цю програму аж з двох рядків. Та нічого не трапилося. Вона не працювала. Я не міг зрозуміти: чому компʼютер не виконує мою програму? Адже я її написав повністю!
Я повернувся до теорії та почав читати книжку далі.
У наступному абзаці було написано: «Щоб запустити програму введіть команду RUN».
Я ввів та вона запрацювала.
Я вважаю що без теорії я не зміг би стати програмістом. :)
Усім гарної пʼятниці! :)
Сценарій: Передача 1000 повідомлень розміром 1 KB.
А які були повідомлення? Яке кодування?
Середній розмір повідомлення (KB)
А якщо усі повідомлення були 1 КБ, то в чому сенс рахувати середній розмір?
1. Можна дати оцінку по факту виконання попередніх схожих проектів. Наприклад: «Ми розробили схожу CRM за півроку, командою з 3 інженерів, це коштувало $100,000.»
2. Якщо власного досвіду не має, то найняти консультантів з досвідом схожих проєктів, які можуть надати готові WBS з оцінкою.
3. Менеджер проєкту повинен доповісти стейкхолдерам (замовнику) про ризики: scope is not defined, requirements are missing. Доповісти, що ці ризики суттєво впливають на терміни та бюджет розробки. Запитати: чи готовий замовник ці ризики нести? Якщо так, то беріть та розробляйте продукт. Якщо замовник не готовий нести ризики, то запропонувати знизити ці ризики: сісти за задокументувати скоуп та вимоги.
Тема дуже актуальна! Два місяці тому я робив вебінар (англійською мовою) щодо селф-промоушену для інженерів, та чому це важливо для нашої спільноти.
Аудиторія:
1. Хто хоче стати впливовими інженерами у своїй спільноті, ставши лідерами та прикладами для наслідування для тисяч людей.
2. Хто прагне видимо висловлювати і отримувати визнання за свої досягнення в компанії, будувати тісні стосунки з керівництвом та ключовими клієнтами, і стати ключовими членами своєї команди та компанії.
3. Хто хоче отримувати пропозиції роботи від провідних компаній, впевнено проходити співбесіди та розуміти свою цінність, знаючи свої сильні і слабкі сторони.
Теми:
1. Що таке самопросування і чому це важливо для КОЖНОГО?
2. Я не зробив нічого особливого — чи варто просуватися?
3. Де просувати себе?
4. Я все ще маю сумніви, чи варто мені займатися самопросуванням...
5. Приклади та кейси.
Посилання на YouTube: Self promote! Don’t wait for your manager!.
Майже усі турніри з тенісу (див. ATP Tour) — там спортсмени особисто подають заявки на змагання. Там складна рейтингова система, щоб тримати рейтинг на рівні спортсмен повинен постійно грати та вигравати. Тому запрошувати не має сенсу — хочеш бути в топі — кожені
Я навчався в
Підтримую!
Див. мій вебінар про трансляцію власного досвіду, та чому це корисно для вас, вашої компанії та спільноти!