А для какого SQL, если не секрет? Я понимаю, что здесь универсально, я имею ввиду на каком испытывалос Вами?
У меня была задача сделать универсальное хранение сущностей — сделал аналогично. Потом на хранимках написал какое-то подобие API -т.е. addProp / remProp и т.д. В том числе и поиск. Делал на PgSQL.
Работало очень шустро, просто интересно как на других SQL-ях?
Кстати говоря на практике потом, как выяснилось — не очень нужно. Гораздо более простой и удобной оказалось использование вот такой штуки — каждый объект имел свою собственную таблицу со своими свойствами, была таблица, представлявшая собой связь «тип объекта» => «таблица объекта» ну и остальное все от этого плясало.
Возможно что изменение такой структуры более долгое, т.к. требует alter, но на практике, во всяком случае в моем варианте, это требовалось крайне редко.
Я бы, с удовольствием, но, к сожелению, здесь опубликовать не могу из-за кармы — люблю поспорить ;)
Может быть я какнидь опубликую статейку в блоге и выложу сюда ссылку, я думаю кол-во приверженцев возрастет в разы :)
Вообще XSLT обаладет инетересной чертой — стоит пглядеть на него — как какжется что он какой-то «угловатый» и ограниченный, но стоит его попробовать на реальном проекте, попробывать всю мощь XPath и осей — как бесконечно в него влюбляешься. Есть у него главная черта, которой очень мало в других языках ( не в обиду будет никому сказано ) — это его лаконичность.
Вот люблю я лаконичные языки вроде регспов и xslt, хотя иногда конечно эта лаконичность заставляет понапрягать мозг — ну дак так даже интереснее, тем более что всеж таки большинство шаттных проблем решаются вполне без напрягов, да и большинство шаблонизаторов поддерживают вызов процедур внешнего языка, если уж вообще никак.
Кстати ниже всего этого darkk очень неплохо написал о своем мнении.
Можете прочесть это, а потом перечитать свои топики.
Еще раз повторюсь — профессионал может считать, что какой-то инструмент не подходит лично ему по таким-то и таким-то пречинам. Он может это говорить ИМХО свое, но никогда не скажет что инструмент — гавно ;) darkk сказал что «мог бы сказать» но не сказал ;)
Во-первых вы таким утверждением дискредитируете себя в глазах других программистов, которые используют данный инструмент в своей практике, это раз, а во-вторых это просто элементарное неуважение в принципе.
Кстати благодаря PHP движению возникло множество терок из которых потом и повылезали различные решения, принятые в дальнешем на вооружение. Вам не кажется, что только за одно это можно уважать данное сообщество, даже не используя его язык?
Isn'it?
Собственно спор дальше ниочем считаю бесмыссленым, я не призывал Вас полюбить чтото или начать писать на PHP, и не говорил что PHP — лучший язык ;)
Конечно не означает что PHP можно за такие действия поставить "+". Но вот так категорично судить — это смешно.
Естественно минус за точто не кидает варнинг — это сложно отлаживать. Однако я, например, придерживаюсь всегда оперделенного стиля программирования, и обычно если делую переменные, которые меняют тип в процессе выполнеия — четко представляю за чем.
Смысл «нетепизируемости» не в том, что можно по всякому вот так выковряживаться, а совсем в другом.
Бога ради — пишите на другом, но не рубите с плеча )
Это логика кстати, пусть и не тривиальная ;)
Не все, что не уписывается в Вашу логику — не есть логика.
За нетривиальность часто, очень часто ругают PHP, но далеко не так категорично, как Вы.
Хм… лень мануал смотреть но скорее всего логика такая:
$foo — строка, она-же является массивом знаков, ну типа $foo=«asdf» и $foo[1] будет 's'
Мы обратились по ключу «foobar» => ключа такого нет ибо ключи у нас цифровые :) Раз нет, бум считать что ключ = 0. По скольку мы работаем с characters, то он взял только первый символ строки. Теперь по русски :)
$foo = «asdf»;
$foo[«foobar»] = «baz» => $foo[0] = 'b'
Однако очень странные у вас аналогии, тогда приведу свою:
заходите вы в магазин, подходите к ветрины с соусами, берет там чили и пробуете… Вы не знаете для чего он и понятно чем Вы его будете считать, а вот то, что получается когда его применяют правильно — я думаю очень бы Вам понраилось, так что — увы и ах ;)
ну поповоду не причечооночти именований функций — это как раз "-" PHP, а вот куски кода работающие по-разному в разгых версиях языка — это увы — проблемы не только PHP ;)
Баги есть везди, к сожелению. А вот неподкрепленное фактами утверждение весьма плохо говорит о вас, как о профи. Я знаю массу людей, которые отлично пишут на PHP, Ruby и Python-е. И каждый абсолютно нормально относится ко всем языкам на которых пишет. Ибо есть у каждого языка свой сахар и своя соль.
А то, что по Вашему — PHP — говно — означет лишь одно — вы мало писали на этом языке. А про баги — зайдите на багрепорты для пайтона и Руби например. И это нормально. Любой язык развивается, при этом могу и допускаются ошибки. Это и есть эволюция собственно ;)
У меня была задача сделать универсальное хранение сущностей — сделал аналогично. Потом на хранимках написал какое-то подобие API -т.е. addProp / remProp и т.д. В том числе и поиск. Делал на PgSQL.
Работало очень шустро, просто интересно как на других SQL-ях?
Кстати говоря на практике потом, как выяснилось — не очень нужно. Гораздо более простой и удобной оказалось использование вот такой штуки — каждый объект имел свою собственную таблицу со своими свойствами, была таблица, представлявшая собой связь «тип объекта» => «таблица объекта» ну и остальное все от этого плясало.
Возможно что изменение такой структуры более долгое, т.к. требует alter, но на практике, во всяком случае в моем варианте, это требовалось крайне редко.
Может быть я какнидь опубликую статейку в блоге и выложу сюда ссылку, я думаю кол-во приверженцев возрастет в разы :)
Вообще XSLT обаладет инетересной чертой — стоит пглядеть на него — как какжется что он какой-то «угловатый» и ограниченный, но стоит его попробовать на реальном проекте, попробывать всю мощь XPath и осей — как бесконечно в него влюбляешься. Есть у него главная черта, которой очень мало в других языках ( не в обиду будет никому сказано ) — это его лаконичность.
Вот люблю я лаконичные языки вроде регспов и xslt, хотя иногда конечно эта лаконичность заставляет понапрягать мозг — ну дак так даже интереснее, тем более что всеж таки большинство шаттных проблем решаются вполне без напрягов, да и большинство шаблонизаторов поддерживают вызов процедур внешнего языка, если уж вообще никак.
Можете прочесть это, а потом перечитать свои топики.
Еще раз повторюсь — профессионал может считать, что какой-то инструмент не подходит лично ему по таким-то и таким-то пречинам. Он может это говорить ИМХО свое, но никогда не скажет что инструмент — гавно ;) darkk сказал что «мог бы сказать» но не сказал ;)
Во-первых вы таким утверждением дискредитируете себя в глазах других программистов, которые используют данный инструмент в своей практике, это раз, а во-вторых это просто элементарное неуважение в принципе.
Кстати благодаря PHP движению возникло множество терок из которых потом и повылезали различные решения, принятые в дальнешем на вооружение. Вам не кажется, что только за одно это можно уважать данное сообщество, даже не используя его язык?
Isn'it?
Собственно спор дальше ниочем считаю бесмыссленым, я не призывал Вас полюбить чтото или начать писать на PHP, и не говорил что PHP — лучший язык ;)
Вы хорошо о себе думаете )
Поглядите мой самый верхней комментарий, адресованный не вам — и Вы поймете ;)
А вот за книжку респект и спасибо!
А пайтон учили по каким материалам? Или консоль + google? ( мой вариант последний — нормальных печатных книг я, к сожелению, не нашел )
Естественно минус за точто не кидает варнинг — это сложно отлаживать. Однако я, например, придерживаюсь всегда оперделенного стиля программирования, и обычно если делую переменные, которые меняют тип в процессе выполнеия — четко представляю за чем.
Смысл «нетепизируемости» не в том, что можно по всякому вот так выковряживаться, а совсем в другом.
Бога ради — пишите на другом, но не рубите с плеча )
Не все, что не уписывается в Вашу логику — не есть логика.
За нетривиальность часто, очень часто ругают PHP, но далеко не так категорично, как Вы.
И кстати Ваш друг более сдержан в критике.
$foo — строка, она-же является массивом знаков, ну типа $foo=«asdf» и $foo[1] будет 's'
Мы обратились по ключу «foobar» => ключа такого нет ибо ключи у нас цифровые :) Раз нет, бум считать что ключ = 0. По скольку мы работаем с characters, то он взял только первый символ строки. Теперь по русски :)
$foo = «asdf»;
$foo[«foobar»] = «baz» => $foo[0] = 'b'
Как то так, поправьте меня если я ошибаюсь :)
заходите вы в магазин, подходите к ветрины с соусами, берет там чили и пробуете… Вы не знаете для чего он и понятно чем Вы его будете считать, а вот то, что получается когда его применяют правильно — я думаю очень бы Вам понраилось, так что — увы и ах ;)
А то, что по Вашему — PHP — говно — означет лишь одно — вы мало писали на этом языке. А про баги — зайдите на багрепорты для пайтона и Руби например. И это нормально. Любой язык развивается, при этом могу и допускаются ошибки. Это и есть эволюция собственно ;)