10 найпоширеніших помилок, які роблять новачки в Java

Доброго дня, мене звуть Олександр Акбашев, я Lead QA Engineer в проекті Skyforge. А також за сумісництвом асистент tully Технопарку на курсі «Поглиблене програмування на Java. Наш курс йде у другому семестрі Технопарку, і ми отримуємо студентів, які закінчили курси по C++ і Python. Тому я давно хотів підготувати матеріал, присвячений найпоширенішим помилок новачків в Java. На жаль, написати таку статтю я так і не зібрався. На щастя, таку статтю написав наш співвітчизник — Михайло Селіванов, правда, англійською. Нижче представлений переклад цієї статті з невеликими коментарями. По всіх зауважень, пов'язаних з перекладом, прошу писати в особисті повідомлення.



Спочатку мова Java створювався для інтерактивного телебачення, проте з часом став використовуватися скрізь, де тільки можна. Його розробники керувалися принципами об'єктно-орієнтованого програмування, відмовившись від зайвої складності, властивої тим же С і С++. Платформонезалежність віртуальної машини Java сформувала свого часу новий підхід до програмування. Додайте до цього плавну криву навчання і гасло «Напиши одного разу, запускай скрізь», що майже завжди відповідає істині. Але все-таки помилки досі зустрічаються, і тут я хотів би розібрати найбільш поширені з них.

Читати далі →

Запрошуємо на Moscow.pm 5 березня



5 березня ми запрошуємо всіх на чергову зустріч Perl Mongers. Ось уже протягом восьми років на такі зустрічі збираються Perl-програмісти, які обмінюються досвідом з усіма однодумцями. Програма майбутнього заходу присвячена виключно Perl 6. Він настільки відрізняється від попередніх версій, що розглядається вже як самостійний мову програмування. Більш того, багато фахівців вважають, що Perl 6 стане справжньою віхою в розвитку програмування. Історія його розробки почалася в 2000 році, коли Ларрі Уолл почав роботу над специфікаціями. Незважаючи на те, що Perl 6 ще не вийшов офіційно, всі бажаючі вже можуть знайти в мережі сумісні з ним компілятори і віртуальні машини. Під катом вас чекають опису доповідей та матеріали з минулої зустрічі.

Читати далі →

Лекції Технопарку. Пошук і перевірка нових ідей бізнесу: погляд з Темної сторони

Якщо ви роздумуєте про свій стартап, рекомендуємо ознайомитися з майстер-класом Аркадія Морейниса, який він провів у Технопарку. Тут він ділиться своїм поглядом на стартапи як такі, розповідає про різні аспекти їх створення і важливих моментах, на які потрібно звернути увагу. Конспект лекції, як завжди, під катом.


Читати далі →

Розбір викликів функцій в PHP

Цей пост присвячений оптимізації PHP за допомогою профайлера Blackfire PHP-скрипті. Нижченаведений текст є детальним технічним поясненням статті в блозі Blackfire.

Зазвичай застосовується метод strlen:

if (strlen($name) > 49) {
...
}

Однак такий варіант приблизно на 20% повільніше цього:

if (isset($name[49])) {
...
}

Виглядає непогано. Напевно ви вже зібралися відкрити ваші сурси і замінити всі виклики strlen() isset(). Але якщо уважно прочитати оригінальну статтю, то можна помітити, що причина 20-відсоткової різниці у продуктивності — багаторазові виклики strlen(), близько 60-80 тисяч ітерацій.

Читати далі →

Лекції Технопарку. Програмування в управлінні. Історія одного студента Бауманки

Сьогодні ми продовжуємо цикл публікацій лекцій Технопарку (до речі, нещодавно проекту виповнилося 3 роки). У цій лекції Кирило Маркін, студент МДТУ їм. Баумана, поділиться своїм досвідом по створенню невеликій компанії «Диафентис», яка займається впровадженням різних програмних комплексів. Конспект лекції дивіться під катом.



Підписуйтесь на наш youtube-канал, там буде ще багато цікавого!

Читати далі →

Технопарку - 3 роки



Нещодавно Технопарк Mail.Ru святкував своє триріччя. Всі ці три роки ми розповідали про нього на Хабре: писали про те, як все починалося, пишалися підсумками перших двох років, наші викладачі ділилися досвідом, ми публікували лекції. За цей час викладачі та студенти виконали величезну роботу: наша програма стала ширша, корисніше і крутіше, з'явилися відкриті підготовчі курси, ми організували літню школу. На нашому рахунку вже 6 семестрів інтенсивного навчання, до кінця якого залишаються тільки кращі з кращих. А головне, ми випустили два курсу кваліфікованих фахівців, багато з яких після випуску отримали роботу в Mail.Ru Group та інших великих IT-компаніях.

Трохи цифр за весь цей час:
  • 222 студента
  • 37 викладачів
  • 22 дисципліни
  • 89 стажистів за весь період існування Технопарку
  • 35 студентів зараз проходять стажування в Mail.Ru Group
  • 40 людина успішно пройшли стажування і вже перейшли в штат
Всі люблять списки, тому ось ще один — дошка наших досягнень:
  • Запустили відкриті курси і провели 20 майстер-класів з провідними фахівцями IT-індустрії;
  • Провели чемпіонат Техностарт, переможці якого взяли участь у російсько-китайському змаганні з веб-розробки;
  • Відкрили студентську лабораторію;
  • Провели 2 перших випускних.
Під катом докладніше про все.

Читати далі →

Як ми реалізували HTTPS на головній сторінці порталу Mail.Ru



Парадоксально: HTTPS існує вже багато років, але за всі ці роки не став стандартом за промовчанням для всіх інтернет-ресурсів, які працюють з критичними з точки зору безпеки даними. В минулому році ми першими серед великих російських порталів включили HTTPS на головній сторінці.

Читати далі →

Буфер висновку в PHP

У цій статті я хочу розповісти про те, як реалізований шар «буферизації виводу» в PHP, як працює і як з ним взаємодіяти з PHP. В цьому шарі немає нічого складного, але багато розробники або зовсім не розуміють, як з ним звертатися, або не мають повної ясності. Все, про що я буду писати, відноситься до PHP версії 5.4 і вище. Саме починаючи з неї змінилися багато речей, пов'язані з буфером виводу (БВ). По суті, цей функціонал був повністю переписаний, тому сумісність з версією 5.3 збереглася лише частково.

Що таке буфер висновку?
Потік виводу в PHP містить байти, зазвичай у вигляді тексту, які розробникові треба вивести на екран. Найчастіше для цього використовується конструкція echo або printf(). По-перше, потрібно розуміти, що будь-яка функція, що виводить, буде використовувати БВ з області PHP. Якщо говорити про розширення PHP, то можна отримати доступ до функцій, які пишуть в SAPI безпосередньо, в обхід будь-якого вищерозміщеного БВ. API C задокументовано lxr.php.net/xref/PHP_5_5/main/php_output.h, звідси можна почерпнути чимало інформації, наприклад, про розмір буфера за замовчуванням.

Другий важливий момент: шар БВ є не єдиним шаром, в якому буферизуються виводяться дані.

І третє: в залежності від SAPI, який ви використовуєте веб або cli), шар БВ може вести себе по-різному.

Нижче представлена схема, яка допоможе зрозуміти все вищесказане:


Читати далі →

Запрошуємо на Moscow.pm



Ми знову запрошуємо всіх однодумців на чергову зустріч Perl-програмістів, Moscow.pm. Ця славна традиція підтримується вже майже 8 років. За цей час ми змінили чимало місць і форматів зустрічей, зупинившись на гостинному і комфортному офісі Mail.Ru Group. Наші зустрічі — це не «клуб для своїх», ми відкриті для ветеранів Moscow.pm, так і для новачків. Ми збираємося для того, щоб обмінятися досвідом і знаннями, а заодно поспілкуватися з тими, хто поділяє наші інтереси. Наприклад, був випадок, коли виступ, на яке відводилося 40 хвилин, переросло в тригодинну дискусію, в якій брали участь всі присутні.
Читати далі →

Лекції Технопарку. 1 семестр. Web-технології

Сьогодні цим постом ми відкриваємо цикл щотижневих публікацій навчальних матеріалів Технопарку. Якщо хтось ще не знає, Технопарк — це спільний освітній проект Mail.Ru Group і МДТУ їм. Н. Е. Баумана. На даний момент тут проходить навчання за 20 ІТ-дисциплін 91 найбільш талановитий студент. Технопарк існує з 18 листопада 2011 року, а перші щасливчики приступили до занять в грудні 2011 року.

Навчання в Технопарку абсолютно безкоштовне, воно проходить після занять в університеті. Стати учасниками проекту можуть студенти 3-5 курсів. Хоча для 2 і 6 курсів можуть зробити виняток. Навчання триває 2 роки, воно розбите на 4 семестри, в кожному з яких проходять по 3-4 предмета. Перший блок першого семестру присвячений всьому, що пов'язано з web-технологіями, від історії виникнення до програмування та безпеки web-додатків.

Лекція 1. Введення

На вступному занятті ви познайомитеся з короткою історією розвитку інтернету, основними трендами розвитку web-додатків, хмарних сервісів і мобільних додатків. Також на лекції розібрано пристрій і робота нескладного web-додатки, обговорені такі фундаментальні поняття, як система адресації в інтернеті, домени, HTML-сторінки і протокол HTTP. Наостанок коротко розказано про CGI-скрипти, їх призначення та особливості роботи.


Читати далі →