PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (594): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 8901
EuGen Отправлено: 30 Октября, 2015 - 00:53:11 • Тема: Вопрос к программистам • Форум: Прочее

Ответов: 37
Просмотров: 319
Дано - дерево, однако же, со следующими особеностями:

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

Задача - создать обход листьев дерева, который принимает как параметр предельный уровень вложенности, но при этом генерирует значения, а не возвращает в виде массива. Листом дерева (в виду его формальной бесконечности) считается узел на уровне, переданном функции как предельный.

Например, пусть существует функция Y, которая принимает два параметра - node (узел) и level (уровень), и возвращает массив. Пусть значения узлов - будут обычными строками. Тогда нужно написать функцию X, которая принимает начальный узел и предельный уровень, и генерирует значения:

PHP:
скопировать код в буфер обмена
  1. //define $level, $startNode
  2. foreach (X($startNode, $level) as $leafNode) { /*...*/}


пояснение: инструменты (Отобразить)

пояснение: алгоритмы (Отобразить)

пояснение: версии (Отобразить)
EuGen Отправлено: 25 Октября, 2015 - 14:36:29 • Тема: Ведение логов • Форум: Вопросы новичков

Ответов: 9
Просмотров: 488
Psr logger - классика, к тому же имеет много реализаций. Например, monolog . Не стоит привязываться к реализации, стоит следовать контракту.
EuGen Отправлено: 14 Октября, 2015 - 22:35:42 • Тема: Вопрос по singleton • Форум: Вопросы новичков

Ответов: 5
Просмотров: 298
Спойлер (Отобразить)
EuGen Отправлено: 14 Октября, 2015 - 22:29:38 • Тема: Что делать с "глупыми" вопросами? • Форум: Колонка администратора

Ответов: 27
Просмотров: 8003
Коллеги, я, конечно, всё понимаю, но нужно знать меру - получать десятки сообщений в ЛС ради теста - это перебор.
EuGen Отправлено: 29 Декабря, 2014 - 18:22:50 • Тема: Новый форум. Структура базы. Конвертор • Форум: Колонка администратора

Ответов: 31
Просмотров: 9045
Why EAV is bad
EuGen Отправлено: 18 Декабря, 2014 - 09:57:22 • Тема: workflow • Форум: Колонка администратора

Ответов: 7
Просмотров: 1943
DeepVarvar пишет:
Евген писал что будет только кодревью делать, и то редко, т.к. у него сейчас траблы с инетом и временем.
Сам я уже "в системе".

На "посмотреть github" (у него есть более-менее дружелюбная мобильная версия) - пока хватит.

Ввиду того, что удалось убедить в:
DeepVarvar пишет:
Обязательно добавить юнит-тесты в проект

предлагаю подумать над continuous delivery - есть очень хороший сервис для оного, легко интегрируется с github: circleci.com
EuGen Отправлено: 17 Декабря, 2014 - 14:40:39 • Тема: ТЗ на доработку форума портала • Форум: Колонка администратора

Ответов: 1
Просмотров: 984
upd. (всплывёт в "последних темах")

- Возможность создания тем - "справочников" (headers already sent, ??? вместо русских символов и т.п.)
- Возможность закрывать темы как дубликаты к уже существующим
- Возможность помечать в теме, что ответ найден - и помечать, какой именно ответ автор темы счёл решением. При этом ссылка на этот ответ добавляется в главное сообщение темы / Либо сообщение с ответом будет автоматически первым в списке ответов (предпочтитально первое, ибо на форуме ведётся дискуссия, то есть произвольное сообщение не всегда можно выдернуть из контекста и поместить первым сообщением)
- Рейтинги у отдельных сообщений и у самих тем (то есть вопросов. Дубликат к существущей по причине лени поискать? Минус сообщению)
- Возможность сортировать сообщения в теме по рейтингу.
- Рейтинги пользователей по тегам. За каждый плюс в рейтинг сообщения по теме, относящееся к некоторому тегу, рейтинг автора этого сообщения в данном теге растёт. Таким образом, вес сообщений пользователя в этом теге растёт.
- Обновлю, если что-либо ещё будет нужно.
EuGen Отправлено: 12 Декабря, 2014 - 19:49:49 • Тема: Покупка движка форума • Форум: Колонка администратора

Ответов: 30
Просмотров: 5420
Хотя, ввиду низкой активности, не могу претендовать на авторитетность своей точки зрения, но все же - против выбора проприетарного движка в принципе.
- Невозможность добавить функционал (даже если все устраивает сейчас - на будущее никто ничего не гарантирует)
- Невозможность провести аудит безопасности.
- Даже если каким-либо образом (тестирование черного ящика) уязвимость найдена, невозможность быстро её устранить ввиду зависимости от поставшика ПО
- и т.п. - всё это давно известно и относится к вопросу "открытое ПО" против "проприетарного".

Разрабатывать ли своё, использовать ли готовое - вопрос другой. Если найдётся готовое, которое действительно имеет нужный функционал, открытый, качественный, тестируемый, поддерживаемый код - то нет смысла создавать своё. Однако я этот вопрос не исследовал, так как простого "поиска в google" - здесь недостаточно, нужен анализ каждого варианта, который показался подходящим.

Плюс, по-прежнему остаётся первичный вопрос - вопрос контента. Намерение - в том, чтобы перенести текущий контент на новый движок/дизайн/что-либо-ещё? Тогда можно не торопиться. Статьи на сайте вряд ли стоят этого переноса. На форуме же достаточно найти пару десятков тем, которые послужат "ссылочными" (поскольку в большинстве своём, все вопросы - их копии).

Из вышесказанного, по теме - следует, что - найдись время - уже первый пункт - не имею желания работать с проприетарными движками, так что следующие два пункта отпадают.
EuGen Отправлено: 12 Декабря, 2014 - 19:40:53 • Тема: Composer vendor dir • Форум: Прочее

Ответов: 5
Просмотров: 59
"Вынесение" каталога - суть непонимание того, для чего нужен composer и как работать с зависимостями.
Чтобы объявить, что всем проектам нужна одна версия фреймворка, достаточно в composer.json указать одну и ту же версию в зависимости. Да, composer будет скачивать зависимость для каждого проекта, но в этом вся суть. Если позднее какому-то проекту потребуется другая версия какой-либо библиотеки, наподобие фреймворка, это - сменить одну строку в файле, выполнить composer update и подождать, пока все автоматически установится (включая все зависимости другой версии библиотеки).

Если "вынести" что-либо от одного проекта во все - то проще не использовать composer в принципе. Сейчас, во времена, когда свободное пространство на сервере измеряется терабайтами, жалкие пара десятков мегабайт на проект не делают погоды, в то же время обеспечивая целостную, легко поддерживаемую и структурированную систему и обеспечивая независимость каждого конкретного проекта.
EuGen Отправлено: 30 Ноября, 2014 - 00:18:37 • Тема: Форум тормозит все сильнее • Форум: Колонка администратора

Ответов: 57
Просмотров: 16462
Viper пишет:


PS! Велосипед не нужен. Быстрее поднять на уже обкатаном + наполнить контентом. Пусть даже и устаревшим, это позволит сократить время до минимума.


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

Но, по правде, всё зависит от целей. Хотим ли мы быть среди лучших проектов? Если да, то придётся иметь хорошее, профессиональное содержимое и современный портал. Однако же если цель - просто существовать, имея какую-то информацию - то с этой целью портал успешно справляется и сейчас. И это не хорошо и не плохо. Быть среди лучших - значит что-то для этого делать. Ну а пока, есть и другие порталы для тех, кто не знает английского (ибо те, кто знают - уже давно пользуются stack exchange и им подобными порталами).
EuGen Отправлено: 29 Ноября, 2014 - 23:59:04 • Тема: Форум тормозит все сильнее • Форум: Колонка администратора

Ответов: 57
Просмотров: 16462
Приветствую,

Уже достаточно давно я не проявляю активность на конференции как пользователь. Не пишу статьи или не отвечаю на вопросы. Если что-либо и делаю - то администрирование - проверяю, всё ли в порядке (если это можно так назвать).

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

Касаемо этой темы - моя активность на SO сейчас даёт возможность рассудить здраво. Текущее состояние портала (со статьями ещё из богом забытого PHP4) - совершенно неудовлетсорительное. Он устарел совершенно. Ядро на файлах? В 2014-м году, во времена, когда только ленивый не сделал кеширование через memcached? Функционал, сдававший уже 5 лет назад? Ошибки вёрстки уровня frontend-юниора? В общем, это весьма и весьма огорчает.

И не то, чтобы люди здесь совсем ничего не пытались сделать. Лично я, совместно с Ильёй, пробовали различные варианты. Тот же vanilla-форум. И не то, чтобы были какие-то проблемы с движками. Да, внутри они все были ужасны, полны анти-паттернов и просто плохого кода. Но на тот момент они свою цель бы выполнили. Дело в том, что никакого конкретного содействия мы не получили. А поскольку в любом случае это - вложение собственного времени и сил - кому же захочется делать это, видя, что нет никакой поддержки, что труды скорее всего будут не нужны? Поэтому, после короткого тестирования и подбора нужных модулей, дело было приостановлено а потом и вовсе забыто.

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

Наконец, какие-нибудь темы? Выбрать те, у которых наибольшее число просмотров/комментариев и перенести. Оных наберется от силы пара-тройка десятков. Хотя, погодите. У нас ведь нет такой сортировки. Опять же, увы и ах. Говоря про тот же SO - тот портал не является конференцией по формату. Но он выполняет свое дело для целевой аудитории, размер которой настолько велик, что формат конференции уже не подходит. Однако же - ничто не мешает взять лучшее от функционала SO и реализовать в виде конференции.

Как "реализовать"? Очевидно, писать код. Создать свой движок. Почему свой? Очевидно, чтобы использовать весь потенциал технологий, которые здесь могут быть применены. Нормальная СУБД вместо ФС. Даже MySQL 5.6+ уже огромный шаг вперёд. Кеширование. Уже упоминал. Использование удобного интерфейса. Асинхронные запросы. Всевозможный удобный поиск/фильтрация/сортировки. Удобные рейтинги. Удобный модуль, позволивший бы публиковать расширенные материалы, наподобие статей или уроков. Полная интеграция с главным сайтом, который бы перестал быть отдельной частью. Наконец, удобный и современный дизайн. Если есть хотя бы один движок, который бы хотя бы отдалённо это позволял - можно рассмотреть и его. Но почему-то сильно сомневаюсь. Свой же код - это в первую очередь, возможность применить с самого начала правильную архитектуру, зная, что требуется от портала. Создать модульную структуру, версионировать код через VCS - тот же git - и собирать всё через composer. Появилось столько удобных и уже почти стандартных технологий, что, глядя на портал, кажется, что это позапрошлый век.

Ну и, конечно, нет смысла всё это делать, если само содержимое останется прежним. Нет смысла создавать новый портал на новых технологиях и с удобным интерфейсом/дизайном/и т.п., если мы собираемся там публиковать статьи с $_HTTP_POST_VARS внутри. Нет смысла интегрировать конференцию с главным сайтом, если "новости" там будут пятилетней давности. Словом, самое главное - это содержимое. Ведь отказ в изменениях в первую очередь был из-за опасений выпасть из индекса поисковиков, которые сейчас дают порталу хоть какой-то рейтинг из-за большого объёма данных. Берём количеством, но не качеством. А если сделать полную переработку, обновить материалы - то придётся бороться за популярность и места в поисковиках, как это ни странно.

Но тут уже - нужно делать выбор. Или "старинный багаж", все сильнее и сильнее устаревающий, или - движение вперёд, которое принесёт немало забот, при этом не давая никаких гарантий. И, конечно, стоит помнить, что основная аудитория - потребители. Они не будут писать статьи, не будут способствовать улучшению портала. Так что единственное, на чём всё будет держаться - энтузиазм тех людей, кто будет портал развивать. Так как на энтузиазме далеко не уйти, то нужно, чтобы эти люди действительно ратовали за ресурс. Но это подразумевает полную кооперацию с этими людьми, внимание к их мнению и стремление навстречу. Увы, но оного я не смог здесь добиться, поэтому и не могу более себя причислить к этим энтузиастам.
EuGen Отправлено: 23 Ноября, 2014 - 20:28:34 • Тема: Рост курса валют и рост зарплат • Форум: Прочее

Ответов: 3
Просмотров: 35
Что думать по этому поводу? Сменить страну проживания - как вариант. Проблемы политического характера вряд ли под силу решить специалисту в области информационных технологий. Однако же он волен сделать так, чтобы проблемы отдельно взятой страны его не касались. Проголосовать действием, если можно так выразиться.
EuGen Отправлено: 09 Июля, 2014 - 16:22:31 • Тема: Тестовое задание: имеет ли смысл? • Форум: Прочее

Ответов: 11
Просмотров: 106
Мелкий пишет:
Просите оплату за это задание или же урезание функционала до уровня нескольких часов работы.

Я бы не рекомендовал ни то, ни другое. Первое не имеет смысла, так как, скорее всего, Леонид прав:
caballero пишет:
это не тестовое задание а сделать кусок программы на шарка

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

Contr пишет:
Я обычно такое только за деньги делаю. Вот думаю, что посоветовать другану?

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

По-хорошему стоит ещё и отписать в соответствующие ресурсы - есть подобные, которые отслеживают нечестных на руку работодателей, промышляющих таким поиском "бесплатной раб. силы" (наряду с другими нарушениями) - и сообщают в форме открытого списка и истории нарушений о подобных деятелях.
EuGen Отправлено: 08 Июля, 2014 - 17:55:48 • Тема: К private методам можно получить доступ даже за пределами этого объекта? • Форум: Объектно-ориентированное программирование

Ответов: 12
Просмотров: 3836
^ If you can do something then it does not mean you should do it..
В общем - никогда не следует делать такого, не важно, замыкания это или рефлекция или что-либо другое. Это полностью ломает концепцию приватных/защищённых данных.

Это в том числе и насчёт
Мелкий пишет:
Не помню, как к этому относятся сами разработчики PHP, но я бы не рекомендовал этим пользоваться.

- то есть, совершенно правильная рекомендация так не поступать. И разработчики - да, в курсе. Но есть такие вещи, как "historically-based issues", увы.
EuGen Отправлено: 08 Июля, 2014 - 17:04:54 • Тема: К private методам можно получить доступ даже за пределами этого объекта? • Форум: Объектно-ориентированное программирование

Ответов: 12
Просмотров: 3836
Мелкий пишет:
Я под "извне" подразумевал отсутствие необходимости редактировать оригинальный код класса, но при этом прочитать/записать свойство объекта либо вызвать метод, не предназначенные для публичного доступа.

Такая задача имеет не единственный способ решения. Начиная уже озвученными замыканиями ("наиболее изящно") и заканчивая serialize + работа со строковым результатом + unserialize. Ничего нового в этом нет. Видимо, я действительно не корректно понял значение "извне", которое Вы имели ввиду.

Страниц (594): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB