×Закрыть

Hollow — блог платформа на файлах

Заметил много генераторов статических сайтов, например Jekyll — написал пост, перегенерировал весь сайт. Из бонусов — минимальная нагрузка на сервер, удобно писать посты (1 пост = 1 файл), в большинстве пишут маркдауном (как на гитхабе).

Так вот я чуть изменил задачу — сайт генерится динамически но без базы а из файлов. Бонусы — генерить ничего не надо, лукапов по файловой системе не так уж много, бекапить легко, писать посты можно в любимом редакторе. Минус — в статических генераторах мета инфу (теги и тд) пихали в сам файл, при динамической генерации так делать нельзя ибо читать каждый файл это плохо, так что пока из метаинфы только дата (в названии прям файла) и категории (категория = субпапка в которой файл лежит )

Потом я подумал что если посты держать в том же репозитории получается что-то в стиле вики, для которой админкой выступает гитхаб:
1) На гитхабе прям на сайте можно писать маркдаун и видеть результат
2) Гитхаб помнит все изменения в каждом посте
3) любой пользователь может дополнить ваш пост

Конечно можно просто скачать весь скрипт себе и сделать отдельный сайт и никого не пускать, но где тогда социализм?

Так вот сам сайт hollow.phpixie.com
Чтоб добавить свой пост форкаем тут: github.com/dracony/Hollow
и пишем посты в папку /posts ( в имени поста должна быть дата публикации спереди, для сортировке по дате), ну можно и категорию свою создать. (правда на русском лучше не писать, так как все другое на английском)

Планируется так же брать инфу прям из гита о том кто файл сабмитнул, кто правил, показать их фотки и т.д.

Хорошо то, что например сделал себе сабфолдер чтоб туда валять свои мемуары, и вот захотел прикрутить фичу (ну например фесбук шеринг), если пулл риквест примут, такая фича уже будет у всех. Получатся что все пишут контент и все правят код самого блога =)

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

первой моей поделкой был форум на файлах. с юзерами, правами доступа, бл...ом и шлю...ми

Звучит довольно таки страшно, думаю с форумом уж перебор чуть =) а как сохраняли всю мета инфу?

нет ну в иксмл тогда фичи нет =) Если еще и xpath юзать то та же самая БД получатся (только через жопу =) )
Тут вся идея в том что файлы сами по себе читабельны и писабельны.
Прикольно было б сделать например хотя б в ямле тогда, хоть почитабельнее

на лету все читалось. кол-во постов, тем + куча правил генерации файликов. ну поделка это была, поделка)

вЫлЫсЫпЫдЫстЫ

Все ведь пшпшники этим страдают ? Не чтобы взять какой-нить зенд или симфонию...

Я никогда не страдал.

Поздравляю, ты исключение из мира пшпшников

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


class Category_Model {
public $name;
public $path;
public $categories=array();
public $url;

В пшп мирке это нормальное явление?

Какая там инкапсуляция, у нас есть проблемы похуже =)

А чем вам собственно не нравятся публичные проперти?

а где там геттеры/сеттеры? иначе это по сути поля/аттрибуты

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

Неужели джава настолько поражает ум?
Ну почалось... Давайте Вам вліпимо діагноз «РНР головнго мозку» :-)

І тим не менш, пітонщики починають імена приватних змінних з __.
Робити все публічним — порушення основного принципу ООД.

З цікавості, які б з цих полів ви б зробили приватними?

Ну так для чего же со всеми так? Всегда слишу 2 аргумента:
1) А вот надо будет тебе чтоб там вместо просто значания делалась еще какая-то операция, придется тогда делать метод и рефакторить. Да, придется, и что? рефакторинг займет целых 5 минут, а если не придется то так и останется в каждом класе куча ненужных сущностей.

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

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

Это не нормальная прктика, а просто практика. нет ни ПСРа ни никакого документа который бы говорил «пишыте все через сеттеры». Я хочу услышать реальный аргумент, а без него это просто все вашы предубеждения которые на других не распространяются

Да, придется, и что? рефакторинг займет целых 5 минут, а если не придется то так и останется в каждом класе куча ненужных сущностей.
А теперь возмём стопиццот классов в которых вызывается Foo->Bar.
Сколько времени займет рефакторинг и поиск? Это если все эти вызовы происходят явно без всякой трешевой магии или тд.
зачем защищать код от програмиста?
Потому что программист — человек, который может ошибаться. И иногда такие ошибки очень дорого стоят :)

Так что лучше всего защищать код, в особенности от себя самого :)

Я хочу услышать реальный аргумент, а без него это просто все вашы предубеждения которые на других не распространяются
Є якась ліба, в ній купа класів. Все публічне. Її юзають тисячі людей, само собою, що юзають всі методи. І тут автор хоче один метод викинути, чи перейменувати. В результаті весь софт, який юзав цей метод, перестає працювати. В результаті через 10-20 версій код класу автоматично стає говнокодом, адже автору потрібно в процесі рефакторину і допилювання лишати всі старі проперті і методи. У випадку чітко визначеного інтерфейсу, це непотрібно — всередині міняй що забажаєш, на користувачів класу це не вплине.

Приклад з життя — моя мікрохвильовка. Там є три ручки — це її публічні методи. Я можу вскрити її, і все те саме зробити, замикаючи дроти. Це і є порушення інкапсуляції.

1) Любое ИДЕ позволяет сделать такой рефакторинг автоматически
2) Ваш пример никак не соответствует скрипту на 4 класса.

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

Ну между стопицот и 4 большая разница. Для чего в простом скрипте без надобности плодить лишнее сущности и методы? Во многих случаях это только уменшыт читабельности.

Я не знаю, це залежить від задачі. Я не фанат геттерів-сеттерів, я просто не погодився з Вашим запереченням інкапсуляції як такої.

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

Опять тяга к пиару недофреймворка?

так а фреймворк причем?
Вот
Flat File Blog using PHPixie

ну так не на зенде мне писать блог на 4х классах?

Я не пхпшник, могу судить по отзывам знакомых пхпшников без велосипеда головного мозга

а я вот слышал что земля квадратная, и что?

земля в основном прямоугольная:
www.sciencebuzz.org/...tm5_2009253.jpg

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

Хм ну думаю в большинстве для прикола =)
Джекил в принципе популярен.
Ну вот имхо причины:
1) версии постов в репозитории, удобно смотреть изменения, бекапить, перекидывать контент между секциями сайта. Тоесть все для чего нужно б было юзать админку можно делать более интуитивно.
2) Интерфейс ясен, например база того же Друпала местами очень запутанная, тут все просто
3) похакать практически нереально
4) редактировать можно в чем угодно, без интернета. Например вот поехал я куда-то. в поезде навалял пост, пришел, закинул на сайт. Даже если развернуть свой бложык на локалке, потом перекидывать на лайв сайт не так удобно как файл

Роман Цюпа, почему шифруетесь под левым аккаунтом? =)

А тьфу, у меня левый гугл аккаунт был, забыл выйти =)
Я еще удивился почему доу у меня попросил залогинится =)
Можно сделать меня автором топика?

Его спалил гитхаб, как бы он не шифровался

Подписаться на комментарии