Анхайр с ыплыкитетом ([info]codesign) wrote,
@ 2007-12-12 19:59:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Entry tags:dev, perl, perl-ex

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

http://code.google.com/p/perl-ex

Предложения по дополнению и репорты об ошибках приветствуются.

PS: в принципе в таком виде она была только создана.
до этого эти функции в том или ином виде были использованы в разных местах. соответственно могут быть какие-то баги.
PPS: use 5.8.8;
если юзаете старый перл, можно даже не смотреть.
PPPS: можете меня поздравиь, я первый раз написал POD :))




(15 comments) - (Post a new comment)


[info]adews
2007-12-12 06:17 pm UTC (link)
как думаешь, если бы кто-то (например я) выложил свой набор частоиспользуемого,- сам полез бы разбираться что там к чему?

(Reply to this) (Thread)


[info]codesign
2007-12-12 06:21 pm UTC (link)
Да я уж понял...
пишу документацию...

Хотя лично я бы пошел посмотреть :)

(Reply to this) (Parent)(Thread)


[info]adews
2007-12-12 06:33 pm UTC (link)
посмотреть я тоже пошёл ;-) что-то может даже утянул бы, если бы было желание. Однако вопрос в другом,- чаще используются какие-то свои наработки, с понятной семантикой и поведением. Имхо, в перле возможность сделать что-либо пятью разными способами служит ему плохую службу: ровно до тех пор, пока программеру лень разбираться и реализовывать блок своими мозгами и руками,- используются чужие модули,- но как только появляется возможность переделать что-то под себя (пусть даже на уровне обертки),- оно переделывается. Отсюда,- разброд и шатание в рядах, отсюда,- наработки друзей-программистов практически никогда не используются. Я не прав?

(Reply to this) (Parent)(Thread)


[info]codesign
2007-12-12 06:40 pm UTC (link)
есть такая буква в этом слове есть такое дело...
но во первых: даже если кому-то это послужит примерами для "натырить кода" - это уже неплохо.
во вторых: любая библиотека имеет шанс на широкое использование :) так почему-бы не попробовать?

кстати я был-бы рад, если бы каждый из moscow perl monger'ов выложился подобным образом

И вообще мне хотелось поюзать googlecode :))

(Reply to this) (Parent)(Thread)


[info]adews
2007-12-12 06:46 pm UTC (link)
гуглокода это гуд, понимаю ;-)

(Reply to this) (Parent)


[info]gotta
2007-12-12 06:27 pm UTC (link)
поздравляю :) малацца!

(есть вопрос, ща напишу в мессенгер )

(Reply to this)


[info]deepone
2007-12-12 08:23 pm UTC (link)
Хм, всё это уже есть в шестом перле.

(Reply to this) (Thread)


[info]codesign
2007-12-13 01:09 am UTC (link)
угу, а где хоть одна продакшн версия 6го перла? :))
кстати из той-же библиотеки был исключен switch / case с синтаксисом:
switch {
  case { STATEMENT } when EXPR
} EXPR

по причине коллизии с 5.10.0
честно говоря не ожидал появления его в 5й ветке.

А вообще точно так-же можно сказать, например, про zip/zipw: типа а нафига их реализовывать, они-же есть в хаскеле.

Дело в том, что проекты на 6м можно пересчитать по пальцам, а на 5м ежедневно создаются сотни проектов.

PS: можно конечно сказать, что есть v6, но только вот "вес" этой библиотечки оставляет желать лучшего.

(Reply to this) (Parent)(Thread)


[info]deepone
2007-12-13 09:14 am UTC (link)
Да ладно, уже mod_parrot появился, так что всё пошло в налад, к весне будет компилятор шестого в pasm (Очень очень надеюсь).

Ну вообщем то zip/zipw это >>~<< , да и вообще много где есть.
Но пусть будут и в пятом, только что бы они там были,
модуль не просто должен лежать на цпане ...
кста, толкни его на каком нибуть хакатоне, вдруг расползётся.

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

(Reply to this) (Parent)(Thread)


[info]codesign
2007-12-13 02:16 pm UTC (link)
> mod_parrot
ну что-ж. подождем...
я честно говоря хочу быть одним из первых, кто начнет юзать p6 в продакшне :))

> ...
ну это perl-hacker choice. для большинства малоприемлемо вследствие частых ошибок

(Reply to this) (Parent)(Thread)


[info]deepone
2007-12-13 02:31 pm UTC (link)
> mod_parrot
Я тоже, так что ... устроим забег на длинную дистанцию =)

>...
Я уже не знаю, я в когда код пишу, думаю странными идиомами, и перлхак туда прекрасно вписывается, то-есть я не могу понять отличия хака от нехака.

(Reply to this) (Parent)(Thread)


[info]codesign
2007-12-13 02:43 pm UTC (link)
дело не в том, что хак, а что нет.
дело в том кто хакер, а кто нет :)
хакер в основном не допускает тупых ошибок - поэтому написание функций in place and on demand - приемлемо. а у среднестатистического программиста в большинстве таких функций "на скорую руку" будут зачастую серьезные ошибки.
собственно об этом я и писал.

вобщем ничего... я на perl-ex потренируюсь, через пару месяцев выложу свой ORM :))

(Reply to this) (Parent)(Thread)


[info]deepone
2007-12-13 02:59 pm UTC (link)
Крута, ты орм сделал ?
А какая у него идеология ? Что умеет ?

(Reply to this) (Parent)(Thread)


[info]codesign
2007-12-13 03:22 pm UTC (link)
ну так... пока в процессе реализации версии 1.0 на базе тестовой версии 0.* alpha :)
пока что в стадии отладки и написания тестов генератор SQL'ей :)

основные моменты:
* нормальны синтаксис, без изъебов типа как в ORM.pm
* нормальное вытаскивание связанных объектов (inner/left join) одним запросом.
* возможность использовать автоинкрементные ключи, составные ключи и т.д.
* не привносить синтаксический сахар за счет значительной потери производительности.

PS: если кто захочет привести в пример Class::DBI, DBIx::Class, Tangram, ORM - не стоит. их я видел и использовал. к каждой из них у меня есть претензии.

(Reply to this) (Parent)


[info]codesign
2007-12-13 02:18 pm UTC (link)
а толкну позже...
это первый мой паблик релиз, поэтому хочу, чтоб мне по возможности указали на недочеты.
насчет документации и примеров я и сам конечно-же знаю :))

(Reply to this) (Parent)


(15 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…