Introduction to new technologies present in MySQL which enable developing next gen applications. Technologies like JSON and document store, or microservices. Slides in Russian
QA Fest 2019. Андрей Солнцев. Selenide для профиQAFest
Если вы устали от примитивных "Hello World" примеров и хотите знать больше про кишки Selenide и подводные камни, приходите на этот доклад. Обсудим параллельный запуск, рулы и листенеры, трюки с помощью JavaScript и прокси и всё такое.
А ещё лучше, если вы сами предложите свою тему. Повлияй на доклад!
Разработка крупного Standalone проекта на юнити: улучшаем производительностьВадим Воробьев
Презентация к докладу на DevGamm 2015, Минск.
В докладе рассказывлось о технических тонкостях оптимизации под ПК в Unity на примере The Godlike и приводились истории разработки. Как использовать кодогенерацию, что может профайлер Unity, как правильно работать с UI и почему не стоит связываться с LINQ.
TК°Conf. 10 проблем автоматизации UI и их решение с помощью JDI. Роман Иовлев.TKConf
Автоматизация тестирования является важной и не неотъемлемой частью разработки современного ПО, но без правильного подхода не редко случается, что написание автотестов занимает слишком много времени, а их поддержка может требовать больше затрат чем просто ручная регрессия. Почему же так происходит и как этого избежать? В этой презентации, базируясь на своем опыте работы во множестве проектов, я хочу рассказать об основных ошибках и проблемах, с которыми приходится сталкиваться автоматизаторам и что нужно сделать чтобы их избежать (на примере фреймворка для автоматизации JDI)
Introduction to new technologies present in MySQL which enable developing next gen applications. Technologies like JSON and document store, or microservices. Slides in Russian
QA Fest 2019. Андрей Солнцев. Selenide для профиQAFest
Если вы устали от примитивных "Hello World" примеров и хотите знать больше про кишки Selenide и подводные камни, приходите на этот доклад. Обсудим параллельный запуск, рулы и листенеры, трюки с помощью JavaScript и прокси и всё такое.
А ещё лучше, если вы сами предложите свою тему. Повлияй на доклад!
Разработка крупного Standalone проекта на юнити: улучшаем производительностьВадим Воробьев
Презентация к докладу на DevGamm 2015, Минск.
В докладе рассказывлось о технических тонкостях оптимизации под ПК в Unity на примере The Godlike и приводились истории разработки. Как использовать кодогенерацию, что может профайлер Unity, как правильно работать с UI и почему не стоит связываться с LINQ.
TК°Conf. 10 проблем автоматизации UI и их решение с помощью JDI. Роман Иовлев.TKConf
Автоматизация тестирования является важной и не неотъемлемой частью разработки современного ПО, но без правильного подхода не редко случается, что написание автотестов занимает слишком много времени, а их поддержка может требовать больше затрат чем просто ручная регрессия. Почему же так происходит и как этого избежать? В этой презентации, базируясь на своем опыте работы во множестве проектов, я хочу рассказать об основных ошибках и проблемах, с которыми приходится сталкиваться автоматизаторам и что нужно сделать чтобы их избежать (на примере фреймворка для автоматизации JDI)
Организация работы с API на Vue.js, Виталий КопачёвMail.ru Group
В процессе работы из проекта в проект я тащу свой «велосипед», постоянного его подтачиваю или модифицирую под конкретные нужды. Хотел бы рассказать о нем, его плюсах и минусах. Кроме этого, поговорим о том, какие «велосипеды» для работы с API существуют.
Доклад Алексея Малейкова, ведущего разработчика в HTML Academy.
«Совместно с платформой «Открытое образование» мы запустили курс, посвященный основам HTML и CSS. Перед нами стояла задача разработать систему, которая будет автоматически проверять итоговые проекты на соответствие заранее подготовленному макету. В качестве основной техники для проверки было выбрано регрессионное тестирование.
В каждом проекте мы проверяли разметку, сетку и стилевое оформление не только страницы целиком, но и отдельных блоков. Одной из главных проблем был поиск этих самых блоков, так как о том, какой будет верстка студентов, мы не знали ничего - ни какие теги они использовали, ни какие классы и идентификаторы были задействованы. Имели только общее представление о структуре.
В докладе я расскажу, от чего мы отталкивались при построении этой системы, как мы разбирали и анализировали проекты. Какие инструменты и технологии мы для этого использовали и почему. Какие подводные камни вылезали, и какие возникали проблемы».
Рarse'им бэкенд
Аким Халилов
Вы хотите выучить Backbone? Хотите просто писать клиентский код, не думая о сервере и о том, как все обрабатывать, хранить, бэкапить? Выход есть – храните с помощью Parse. Parse – платформа, которая предоставляет возможность хранения данных без забот о сервере. Хранилище данных, соц. сети, push-notification, cloud code. Что такое Parse и что он умеет, о библиотеке для использования:
- знакомство с JS API и примеры использования;
- начинаем кодить: stub-проект;
- кодим фичи: CRUD + плюшки;
- хостим.
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Практические основы тестирования на php Unit-test: понятия, тонкости, пути решения, вопросы для проработки.
PHPUnittest fast start
Разработано http://webgloss.ru
Большинство считает CSS чем-то простым и не заслуживающим внимания. Но за мнимой простотой кроется большая сложность и огромный пласт проблем, не имеющих пока решения. Современный CSS с его объёмами, новыми фичами, разной поддержкой и багами браузеров, уже почти не поддается анализу человеком. Для этого появляются программы, которые разбирают CSS на атомы, анализируют и помогают сделать его лучше. Как к этому прийти, где мы сейчас и что ещё предстоит сделать.
Программирование на Java (он является компилирующим языком) имеет то преимущество, что код, написанный на данном языке программирования, переводится с помощью соответствующей программы-транслятора в так называемый байт-код, а он, в свою очередь, — в машинный код с помощью виртуальной машины Java (Java Virtual Machine, или просто JVM). Поэтому написанная на Java программа выполняема на любом компьютере с любой системой, лишь бы на нем была установлена виртуальная машина Java. Таким образом и обеспечивается одно из главных преимуществ языка Java — переносимость создаваемых на нем программ на компьютеры разных типов.
JavaFX - очень полезная библиотека для создания интерфейсов
Java - программы.
Нужно иметь закладки на следующие ссылки:
http://docs.oracle.com/javase/8/docs/api/- документация по стандартным классам Java;
http://docs.oracle.com/javase/8/javafx/api/ - документация по классам JavaFX;
http://controlsfx.bitbucket.org/ - документация для проекта ControlsFX;
http://docs.oracle.com/javase/8/javafx/get-started-tutorial/get_start_apps.htm- официальный учебник по JavaFX от Oracle.
Ну что же, давайте приступим к изучению! Успехов Вам в постижении тайн JavaFx!
Самый простой и распространенный способ сборки приложения - это сборка с помощью файла pom.xml. т.е. с помощью Maven.
Мавен - это инструмент для сборки Java проекта: компиляции, создания jar, создания дистрибутива программы, генерации документации.
Сборка проекта происходит в любой операционной системе. Файл проекта один и тот же.
Редко какие проекты пишутся без использования сторонних библиотек(зависимостей). Эти сторонние библиотеки зачастую тоже в свою очередь используют библиотеки разных версий. Мавен позволяет управлять такими сложными зависимостями. Что позволяет разрешать конфликты версий и в случае необходимости легко переходить на новые версии библиотек.
Когда запускается любое приложение, то начинает выполняться поток, называемый главным потоком (main). От него порождаются дочерние потоки. Главный поток, как правило, является последним потоком, завершающим выполнение программы.
Потоки — средство, которое помогает организовать одновременное выполнение нескольких задач, каждой в независимом потоке. Потоки представляют собой экземпляры классов, каждый из которых запускается и функционирует самостоятельно, автономно (или относительно автономно) от главного поток. Хочу еще разграничить два понятия – поток и процесс. Процесс – это задача операционной системы. У него собственное адресное пространство. С ним может быть проассоциировано несколько потоков. Поток же – это гораздо более мелкая единица. Все потоки разделяют адресное пространство породившего их процесса и имеют доступ к одним данным.
2. Query with HibernateQuery with Hibernate
БиблиотекаБиблиотека HibernateHibernate
предлагает три видапредлагает три вида
запросов к БД:запросов к БД:
CriteriaCriteria HQLHQL SQLSQL
4. CriteriaCriteria
//создаем критерий запроса//создаем критерий запроса
Criteria crit =Criteria crit =
ssession.createCriteria(Student.class);ession.createCriteria(Student.class);
//ограничиваем число результатов//ограничиваем число результатов
crit.setMaxResults(50);crit.setMaxResults(50);
//помещаем результаты в список//помещаем результаты в список
List studs = crit.list();List studs = crit.list();
6. Expression.likeExpression.like — , ‘_’ —указывает шаблон где любой— , ‘_’ —указывает шаблон где любой
, ‘%’ —один символ любое количество символов, ‘%’ —один символ любое количество символов
Expression.isNullExpression.isNull — NULL.значение поля равно— NULL.значение поля равно
Expression.betweenExpression.between — ‘age’ — , 18 —имя поля минимальное— ‘age’ — , 18 —имя поля минимальное
, 25 —значение указанного поля его максимальное, 25 —значение указанного поля его максимальное
значениезначение
Expression.inExpression.in — указывает диапазон значений— указывает диапазон значений
конкретного поляконкретного поля
Expression.disjunctionExpression.disjunction,, Expression.orExpression.or — (OR) —дизъюнкция— (OR) —дизъюнкция
объединяет в себе несколько других выраженийобъединяет в себе несколько других выражений
.оператором ИЛИ.оператором ИЛИ
Expression.eqExpression.eq — -определяет равенство поля какому то— -определяет равенство поля какому то
.значению.значению
7. CriteriaCriteria
:Результаты также можно отсортировать:Результаты также можно отсортировать
List studs = sess.createCriteria(Student.class)List studs = sess.createCriteria(Student.class)
.add( Expression.like("name", "Iv%") .add( Expression.like("name", "Iv%")
.addOrder( Order.asc("name") )//по .addOrder( Order.asc("name") )//по
возрастаниювозрастанию
.addOrder( Order.desc("age") )//по убыванию .addOrder( Order.desc("age") )//по убыванию
.list(); .list();
8. Запросы сЗапросы с
использованиемиспользованием
SQLSQL
sesssessionion.createSQLQuery("select * from.createSQLQuery("select * from
Student").addEntity(Student.class).list();Student").addEntity(Student.class).list();
sesssessionion.createSQLQuery("select id, name, age.createSQLQuery("select id, name, age
from Student").addEntity(Student.class).list();from Student").addEntity(Student.class).list();
Query query = session.createSQLQuery("select *Query query = session.createSQLQuery("select *
from Student where namefrom Student where name
like ?").addEntity(Student.class);like ?").addEntity(Student.class);
List result = query.setString(0, "Ivan%").list();List result = query.setString(0, "Ivan%").list();
query = session.createSQLQuery("select * fromquery = session.createSQLQuery("select * from
9. Запросы сЗапросы с
использованиемиспользованием
HQLHQL
HQLHQL((The Hibernate Query LanguageThe Hibernate Query Language — Язык— Язык
запросовзапросов HibernateHibernate), который во многом), который во многом
похож на языкпохож на язык SQLSQL, с той разницей, что, с той разницей, что
является полностью объектно-является полностью объектно-
ориентированным.ориентированным.
10. Запросы сЗапросы с
использованиемиспользованием
HQLHQL
HQLHQL((The Hibernate Query LanguageThe Hibernate Query Language — Язык— Язык
запросовзапросов HibernateHibernate), который во многом), который во многом
похож на языкпохож на язык SQLSQL, с той разницей, что, с той разницей, что
является полностью объектно-является полностью объектно-
ориентированным.ориентированным.
For example:For example:
List<Student> studs =List<Student> studs =
(List<Student>)session.createQuery("from(List<Student>)session.createQuery("from
Student order by name").list();Student order by name").list();
11. Запросы сЗапросы с
использованиемиспользованием
HQLHQL
List<String> names =List<String> names =
(List<String>)session.createQuery("select(List<String>)session.createQuery("select
stud.name from Student stud order bystud.name from Student stud order by
name").list();name").list();