Русский
Русский
English
Статистика
Реклама

Профессионализм

Библиотека Frontend-разработчика, часть 3 Литература уровня Middle и выше

09.01.2021 14:22:36 | Автор: admin

Предисловие

Явление деления разработчиков на уровни очень распространено. Даже в вакансиях чаще всего пишут не просто "Frontend-разработчик", а более развернуто - "Junior/Middle/Senior/${место для вашей должности} Frontend-разработчик". Для чего? С помощью такого деления легче делегировать задачи в команде. У каждого разработчика своя особая матрица компетенций, свои навыки, которые он оттачивал месяцами, а то и годами. С помощью такого деления процесс разработки ускоряется в разы.
Вообще на рынке (я смотрю на рынок стран СНГ) по состоянию на начало 2021 года среди Frontend-разработчиков имеют место быть такие должности (от низшего уровня, к наивысшему и без привязки к инструментам/библиотекам)

  • Intern Frontend-developer - другими словами - стажер

  • Junior Frontend-developer - уровень выше начального, уже более менее самостоятельная единица

  • Middle Frontend-developer - самостоятельная единица, командный игрок, много умеет, но чаще всего в одной сфере / направлении. Через тернии к звездам или стремится к Senior

  • Senior Frontend-developer* - старший, чаще всего в компаниях самый опытный. Человек, который попробовал многие инструменты, много может, много пробует.

  • Architector Frontend-developer** - человек, который часто занимается вопросами выбора технологий, решений в вопросах архитектуры будущего приложения

  • TeamLead - глава команды - распределеяет задачи, связующее звено между командой разработки и бизнесом. Хороший управленец и разработчик

* - он может быть также ведущим разработчиком, который выполняет все те же функци, что и выполнял senior, но при этом отчасти может выполнять функции архитектора. Я видел компании, где понятия "ведущий разработчик" и "Senior developer" отождествлялись.

** - Архитектор - достаточно размытое понятие. Иногда, в командах нет архитектора, но при этом есть techlead. Если загуглить, то он решает все те же задачи, что и архитектор.

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

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

Эта статья как раз о том сборнике книг для разработчиков уровня "Middle и выше".

Секреты Javascript Ниндзя. Джон Резиг, Беэр Бибо, Иосип Марас

У каждой книги есть своя цель, и у этой книги она тоже есть. Цель - напомнить вам о том, что есть в чистом js, что есть в браузере, что такое DOM и какие есть возможности у него.
Она буквально вам говорит: "Отвлекитесь от фреймворков и библиотек - посмотрите что умеет язык без этого!".
На страницах есть краткая информация для повторения основных понятий в js, некоторых стандартных приемов работы, например, с событиями. Все это приправлено от души хорошими примерами кода.
Книга хороша своим грамотным делением на главы и простым языком изложения. Тот самый случай, когда на ночь можно почитать не только с удовольствием, но и с пользой.

Рефакторинг кода на Javascript. Мартин Фаулер

Мы поняли как работают события, что такое замыкания, как использовать генераторы, как убежать от адской пирамиды вызовов и самое главное - с помощью чего. Теперь время писать код. Вот только мы не знаем самого главного в любом коде - способов его организации.
На просторах интернета и в книгах, о которых я напишу ниже вы сможете увидеть такие понятия как DRY, SOLID, KISS, YAGNI - это все общие положения, немного размытые, о построении архитектуры кода, приложения.
В Книге Фаулера идет полное описание каждого действия в момент рефакторинга кода. И да, Мартин Фаулер описал все способы - поверьте, Фаулер докопался и описал даже способ рефакторинга "Вынос в функцию". По факту - книга полноценный справочник или очень хорошая настольная энциклопедия, которая служит на благо архитектуры вашего кода.

Javascript для профессионалов. Джон Резиг.

Джон Резиг решил не вдаваться в подробности и не стал делать как многие авторы - описывать в первых главах все ключевые зарезервированные слова, встроенные методы перебора массивов и т. д.
Книга Резига имеет скорее обзорный характер, она рассказывает о языке в целом, о его перспективах, некоторых интересных и уже всеми забытых методах валидации форм, об интересных моментах в работе с событиями в браузерах и о браузерах в целом. Не скажу, что это мега-полезная книга. Книга скорее служит исторической справкой об языке. Может быть, у меня сложилось такое ощущения, потому что я первой прочел "Секреты Javascript ниндзя". В той книге информации было как-то больше, но обращу внимание на начало второго абзаца - Труд Резига имеет обзорный характер. Возможно, в этом есть свои плюсы.

Погружение в Паттерны Проектирования от RefactoringGuru

А что такое паттерны?

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

Взято с RefactoringGuru

Я уже говорил об DRY, SOLID, KISS, YAGNI. В электронной книге или на официальном сайте вы сможете ознакомиться с данными понятиями более подробно.
Авторов можно поддержать - купить электронную версию, что я советую всем сделать. Труд был проделан огромадный. Я всегда был сторонником идеи "Если можешь объяснить ребенку что-то - значит ты владеешь этим на все 100". Книга "Погружение в Паттерны Проектирования" будет понятна наверное даже ребенку, потому что все очень подробно описано как в главах об архитектуре кода, так и в главах про устройство и построение архитектуры всего приложения.

Естественно вся книга приправлена хорошими примерами реализации на псевдокоде, сравнительной характеристикой паттернов, выделением плюсов и минусов каждого решения и уместностью его использования.

Чистая архитектура. Искусство разработки программного обеспечения. Роберт Мартин

Да, последние книги про архитектуру, но иначе никак - разработчик не должен писать код ради кода, он должен думать о пригодности этого кода в будущем. Даже не так - разработчик должен писать код ради бизнеса. А чтобы он был ради бизнеса, он должен быть поддерживаемым в будущем.
Роберт Мартин писал книгу не для Frontend-developer`ов, а для всех разработчиков и им сочувствующих. Мартин объяснил почему стоит уделять внимание архитектуре, как проводить архитектурный рефакторинг, с основными принципами, о которых также написано в refactoringGuru. (в refactoringGuru, как по мне, более подробно раскрыты некоторые моменты).

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

Заключение

Лучший код там, где нас нет. Лучший код тот, который мы не писали. Любой код, который напишет один человек всегда будет заставлять другого напрягать голову и читать его.
Именно поэтому в этой части, я уделил больше внимания архитектуре приложений, а не возможностям функционального, структурного, объектно-ориентированного программирования на javascript.
Уделите время на архитектуру - она поможет другому разработчику чувствовать себя увереннее в вашем коде.

Спасибо за внимание!

Подробнее..

Из песочницы Путь в ИТ. Книга о том, как жить в ИТ профессионально и счастливо

25.07.2020 20:08:39 | Автор: admin
Путь в ИТ. Обложка книги

Мы все проходим определенные этапы на своем жизненном пути, равно как и на пути профессиональном. Трудно отделить их, влияние второго на первый в судьбе достойного разработчика колоссально. На каждом из таких этапов свои цели и задачи, свои советы и опыт уже прошедших ранее по этому пути. Поделиться последними и вдохновить на новые свершения и призвана эта книга.

В книге собраны опыт, забавные истории, взгляды и решения: о том, как выбирать место работы, когда и с чего начать, как выстраивать отношения в жизни и на проектах. Какие типажи успешны в сфере ИТ и какие черты стоит в себе воспитать. Как стать тим-лидом и руководить, побеждать на собеседованиях, бороться с выгораниями, возрождаться из пепла, двигаться дальше и развиваться. Где искать вдохновение, как попасть в компанию мечты и оставаться жизнерадостным разработчиком.

Немного об авторе


Разработчик сопытом более 10лет. Занималась медиасервисами вкомпании, создавшей Rutube. Работала над порталами Videomore.ru, СТС, Wifire TV Lite, video.khl.ru. Делала HTML5-плеера для КХЛ, ОТР, СТС идругих крупных клиентов. Верстала под IE6 иразрабатывала SmartTV-приложения. Руководила фронтенд-отделом, собеседовала исобеседовалась заграницу. Спикер митапов иконференций со скромным стажем. Сейчас фронтенд-разработчик вЯндексе.

Если интересно внутри выдержки из советов и историй, а также ссылки на скачивание.

Фрагменты книги


О выборе и мотивации
Ищите, где почувствуете вдохновение, азарт, желание развиваться. Не прогибайтесь под другое. Отсекайте лишнюю бюрократию. Не дайте ей поглотить вас с первых лет реальной работы. Всегда помните конечную цель и сверяйтесь с ней как с компасом при каждом микрорешении в ваших начальных (равно как и последующих) шагах.
Если поняли, что не ваше, бегите. Иначе вас затянет, вы станете таким же. Превратитесь в людей, на которых не хотели быть похожими. Проводя 9+ часов вместе, невозможно не слиться с окружением. Вы незаметно для себя перенимаете привычки, образ мышления, местные фирменные фразочки и шаблоны поведения. Шутки, коробившие вас в первые дни, внезапно начинают произноситься вами же спустя несколько месяцев. Не хотите стать таким? Бегите, ищите своих, ловите свою страсть.

О карьере и руководстве
Играйте на опережение. Назрела необходимость внести изменения, завести тикет, отправить заявку на выделение дополнительного железа? Сделайте первым. Работа на опережение верный помощник в построении мелкими шагами достойной карьеры.
Если в вашей голове зародилась, на ваш взгляд, полезная мысль не пренебрегайте ею. Вы можете заблуждаться, считая ее очевидной всем. Я часто совершала эту ошибку. Особенно в моменты смены команд и продуктов, когда уровень их участников не до конца понятен. Страх высказать банальное для всех часто мешает обратить внимание на очевидные проблемы новых коллег.

Беритесь за пугающее остальных. Признание и успехи выше среднего лежат на боковых тропинках от проторенного пути. Не бойтесь амбициозных задач главное, трезво оценивайте их потенциальную возможность, пусть и требующую от вас стать лучшей версией себя. Озвученное обещание и риск публичной неудачи способны заставить вас проявить стойкость и силу воли.
Как брать задачи? Не ройте себе яму. Берите, что успеете, крупное, берите важное, если нет качественно делайте мелочи. Окружите себя успехом. Не подставляйтесь, беря ненужные и мутные задачи. Если они интересны вам, что ж, постарайтесь воспитать в себе привычку смотреть глазами бизнеса. Иначе вы останетесь, по мнению владельцев продукта и руководства, разработчиком немного не от мира сего, а таких не берут в космонавты-руководители.

О собеседованиях
Когда я собеседовалась в сиднейскую Canva, весьма любопытно прозвучало заявление рекрутера о том, что сейчас они ищут исключительно девушек. Несколько удивленная таким сексизмом прогрессивной страны, я незамедлительно переспросила: почему же? Ведь это звучит так нетрадиционно, согласитесь.
Как оказалось, политика компании исходит из максимального комфортного существования в рабочих пространствах представителей любого пола. Нанимая сейчас активно девушек, они стремятся избежать гендерных перекосов в коллективе и поддерживать баланс.
Очевидно, что сейчас в мире девушек серьезного уровня, подходящих для найма, гораздо меньше. А значит, каждая гораздо более ценная находка (и, подозреваю, объект послаблений на технических собеседованиях), нежели ни в чем
не повинные разработчики мужского пола. <...>

О спортивном программировании
Я до сих пор с улыбкой вспоминаю одну задачку университетского этапа, звучавшую примерно так: У сороконожки сорок ножек. Если сороконожка делает шаг правой ножкой, то она наступает себе на 1 ножку, если левой на 2 ножки. <далее, кажется, шли еще некоторые дополнительные условия> Сколько ножек останется у сороконожки, если она начнет ходьбу с левой ножки? <и прилагалось, как водится, описание формата входных и выходных данных программы для прохождения тестов>. Суть решения данной задачи сводилась к набору единственной строчки кода, посылавшей в поток вывода цифру (нет, не 42): 40.

Об отношениях
Есть один тест, который вы пройдете всегда, тест Тьюринга.
Будьте человеком, чувствуйте. Машины еще успеют появиться.
<...>
Как начальник никогда не умаляйте важности личных отношений. Ошибочная недооценка их силы или невнимание к факту их наличия способны нанести неожиданный удар по атмосфере и составу вашей рабочей группы. Однажды увольнение одного из моих бывших коллег-менеджеров привело к побочному и крайне нежеланному для компании побочному эффекту уходу единственного и ключевого на тот момент дизайнера продукта. <...>

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

О фрилансе, благотворительности, мелких компаниях и корпорациях
В небольших коллективах крепче человеческие отношения.
Ярче, острее вкус достижений, признания. Последние проецируются в конечном итоге на любовь к своей работе, всей сфере ИТ пусть и совершенно неосознанно вами, по какой причине. Вот что так важно, дабы закрепить позитивную цепь: работа -> отдача -> признание -> удовольствие. <...>

Попав же в Яндекс, я осознала большие корпорации таят в себе иные, ничуть не менее ценные прелести. Здесь есть драйв причастности к крупным, известным событиям и новостям. Чтение заметок о новых фичах, внутренние обсуждения событий, мнения по ним ключевых людей компании развивают твой кругозор, позволяют матчить то, что происходит изнутри с тем, как это выглядит снаружи. Командировки, рабочие условия, шикарный офис со сказочным видом вдохновляют, убирая границы мышления и доказывая, что всё возможно, стоить только захотеть.
И немного постараться.

О деталях мастерства
Разрабатывайте знания, как карьер. Если копать только
вглубь, стены обрушатся хрупкие узкие знания (названия функций и ничего больше) быстро устареют, и вам будет не выбраться без опоры на понимание (аналогов в других фреймворках, решений с нуля). Если вширь вы рискуете никогда не найти ценное, не набрать крупиц породы, фишек и секретов, делающих мастера таковым. Уходящие в недра знаний конусообразные ступени залог надежности вашего профессионализма.

Детализируйте суждения соразмерно уровню. Если вы новичок в отрасли или даже профессионал, но на новом месте работы, другом продукте либо в малознакомой вам предметной области, избегайте оценочных суждений. Это просто, месяц работы, невозможно емкие простые оценки, вызывающие, на первый взгляд, уважение коллег, экономящие время команды и окутывающие вас ореолом профессионализма, могут сыграть злую шутку, ошибись вы хоть раз. Являясь новичком, разворачивайте вслух цепочки ваших умозаключений и финальный вывод так вы оставляете возможность более опытным коллегам скорректировать рассуждения, лучше понять кухню самому, заодно продемонстрировав способность и желание мыслить, а также дать окружающим представление о складе вашего мышления. Имея же многолетний опыт и релевантные знания позвольте всем восхищаться меткостью ваших фраз. За брошенными вскользь полчаса и невозможно пробегающему мимо менеджеру скрываются мощная база знаний, огромная ответственность и ваша репутация.

О выгорании и борьбе с ним
Признаки выгорания
Автоматизм <...>
Обратные отсчеты. До отпуска. До выходных. До вечера. Потом до обеда. До чая. Сужающиеся диапазоны ожидания чего-то иного. Жизнь впереди, а не здесь и сейчас в омуте текущей задачи.
Крайние левые мысли. Бросить всё. Уйти делать мебель, продавать самогонные аппараты. Получить другое образование и начать всё с нуля в этой новой (непременно лишенной всех тех проблем) сказочной области. Мозг подсказывает: пора что-то передернуть.

Книга об этом и многом другом. Еще немного об опыте научных статей, командировок, отношений с программистами и брака с преподавателем, развода, детей и нездорового интереса местного профессора всех граней отрасли на личном примере.

Путь в ИТ. Обложка книги
Пока (и непостоянно временно) она доступна на правах опенсорса. Т.е. бесплатно.
Скачать можно с сайта way-in-it.ru. Там же можно отметиться о прочтении, взять бумажный экземпляр и поддержать книгу.
Больше форматов доступно на Яндекс.Диске: yadi.sk/d/HiC-kLY6bQOuZg?w=1
Подробнее..

Профессионализм разработчика на шаг ближе к счастью

05.01.2021 16:09:52 | Автор: admin

Привет Хабр! Зачастую разработчика нанимают для того, чтобы он как профессионал решал проблемы бизнеса. Но иногда ко мнению разработчиков по вопросам, в которых они более компетентны, чем представители бизнеса, не прислушиваются. О том, что с этим можно сделать и зачем это нужно разработчику, я и хотел бы поговорить.

Счастье и удволетворенность работой

Счастье понятие сложное и крайне субъективное. Но я считаю, что счастье коррелирует с получением удовольствия от своей работы. В этой статье я хотел бы поговорить о возможной путеводной звезде к получению удовольствия от работы разработчика ПО это быть профессионалом. Под этим я подразумеваю не только обладание навыками для решения проблем, но и реальную возможность применить эти навыки, полностью раскрыв их потенциал.

В мире разработки ПО (software development) есть ряд препятствий, которые не позволяют воспользоваться этим путем к получению удовольствия от работы. Например, разработчик, как профессионал своего дела, может считать, что поддерживаемость системы, проработанная архитектура и правильная организация процессов делают систему более устойчивой к изменениям, тем самым позволяя быстрее разрабатывать новую функциональность и адаптироваться под меняющийся рынок прямая польза для бизнеса. Но представители бизнеса могут считать это ненужной тратой ресурса времени разработчиков.

В чем проблема?

Проблема в том, что бизнес не всегда знает, что для него лучше. Представители бизнеса менеджеры, специалисты по продукту, аналитики и многие другие профессионалы намного лучше разработчика умеют отвечать на вопрос что делать? (произведение Н. Чернышевского не имеет к этому никакого отношения). Но никто не обладает большей экспертизой в разработке ПО чем разработчики (а также архитекторы, технические менеджеры и другие специалисты обладающие знаниями и hard skills в области разработки). Их задача предоставить бизнесу свою экспертизу, валидировать его идеи и отвечать на вопрос как делать?. Идея такого взаимодействия лежит в основе методологии Agile (https://agilemanifesto.org/).

Внимательный читатель заметит, как я прибегаю к приему *argumentum ad auctoritatem (аргумент к авторитету).* Но в мире мнений и субъективных суждений, в котором мы живем это хороший прием, и я советую прибегать в том числе и к нему для донесения профессионалом своей идеи.

Мнение профессионала о том, что полезно для бизнеса субъективно. Это мнение, которое, возможно, не является истиной в последней инстанции и, как любое мнение, может быть ошибочно errare humanum est. Тем не менее, я считаю что разработчику стоит бороться за те идеи, в которые он верит как профессионал.

Что можно попробовать сделать?

Я буду приводить в пример внедрение best practices разработки, хотя это относится к любой идее, в которую профессионал верит и считает частью своей экспертизы. Привносить полезные для бизнеса идеи стоит это хорошо. Проблема в том, что привнесение профессионалом своих идей может встречать сопротивление со стороны коллег других разработчиков, менеджера, высшего начальства и других людей. Возникает вопрос готов ли разработчик бороться за них, какие ставки в этой борьбе и каков ее возможный исход.

Все далее написанное следует из соображения о том, что разработчик хочет получать удовольствие от работы, проявляя себя как профессионал и максимально использовать имеющиеся навыки, чтобы приносить пользу и гордиться проделанной работой. Возможные исходы я предлагаю рассмотреть на следующей шкале:

Конечно, результат попытки донести свою идею до бизнеса совсем не бинарный. Он просто таким не может быть, так как иначе разработчик окажется без таких важнейших инструментов переговоров, как компромисс. Тем не менее я разделю исходы на возможный успех и возможный провал. Успех когда идея разработчика принята в той мере, которая позволяет ему больше применять свой профессионализм и быть довольным той работой, которую он выполняет.

Случаев провала можно выделить два: все остается как и было, или разработчик меняет работу. Причины для второго опять же разные. Одна из них разработчик не хочет дальше заниматься работой, которая не позволяет всецело применять профессиональные навыки и получать удовольствие от работы. Другая, менее позитивная, может состоять в том, что разработчик и его коллеги, или начальство, или политика компании в процессе споров дошли до состояния такой односторонней или взаимной неприязни, когда продолжение дальнейшего сотрудничества невозможно.

Кого и как убеждать?

Если с идеей разработчика согласны все, кто влияет на ее принятие, тогда она принимается и результатом становится однозначный успех. Но эта ситуация выглядит идеализированной, и, скорее всего, возникнут спорные ситуации, которые потребуют разрешения. Я считаю, что в случае разработки ПО есть две стороны, которые разработчик может убедить в правоте своих суждений. Первая горизонтальная это другие разработчики, так как невозможно внедрить практики, например TDD (разработка через тестирование) или code review, если это делает один человек в команде. Вторая вертикальная представители бизнеса, так как применение best practices, особенно когда их внедрение только начинаются, требует времени разработчиков.

Хорошим источником истины, к которому стоит аппелировать в этих спорах, является польза для бизнеса. Она, прямо или косвенно, выражается в денежном эквиваленте. Будь это скорость разработки, гибкость системы, текучка кадров или репутация компании. В случае горизонтальных споров, если не получается донести свою точку зрения с помощью всех возможных приемов риторики, разработчик имеет полное моральное право привлечь административный ресурс обратиться к людям, принимающим решения, чтобы они поддержали его идею.

А использование административного ресурса это как раз возможная необходимость разрешения вертикальных споров. Разработчику необходимо убедить представителей бизнеса в том, что его идея принесет пользу компании. Бизнесу нужна причина тратить ресурсы, поэтому нужно ясно объяснить, что внедрение best practices разработки это инвестиция. Здесь также инструментами убеждения являются все возможные приемы риторики, а также, возможно, работа с данными, поиск примеров и апелляция к авторитету.

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

В этом процессе разработчик может потерпеть неудачу в донесении своей идеи или понять что это требует от него слишком много усилий, что несопоставимо с оплатой его труда. В таком случае возможным путем к работе, которая будет приносить удовольствие, является смена работодателя.

Заключение

Эта статья глубоко субъективное мнение о том, как разработчику получать больше удовольствия от своей работы за счет проявления профессионализма и донесения до бизнеса субъективных идей, которые разработчик, как профессионал, считает верными. Статья во многом вдохновлена идеями Agile, книгой Clean Architecture Роберта Мартина, а также собственным опытом, переживаниями и опытом знакомых и коллег.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru