1-ый способ мне не понравился, т.к. там xml (размер файла, структура файла предполагает лишнюю информацию), пробывать не стал
ng2-translate способ не понравился тем, что там мешает кеширование браузера. При обновлении словаря, файлы из папки i18n в формате json кешируются и у клиента моут обновиться только спустя какое то время. ( возможно можно настроить, что бы в продакшене так же приписывать к названию файлов guid)
использую другой translate чуть модифицированный (что бы можно было использовать в shared module)
https://github.com/AtnagulovID/Angular-2-CLI-Learn-project/tree/master/src/app/_translate (откуда взял не помню, но кода меньше чем в ng2-translate это во первых и в файлы переводов тоже идут как часть приложения в продакшене на angular cli, так что нет проблем с кешированием браузеров)
atnagulovid.myjino.ru — тут можно посмотреть как работает (приложение само ниочем, создается во время изучени я angular 2 )
100% способ узнать по номеру телефона страницу в вк, это только если вы собрали БД вида телефонный номер+ID пользователя
хранение и исползование такого вида информации законно ли?
Не факт. Точно скажу, что если аватарка начинается на cs7004.vk.me/ то она не найдется.
Вся проблема в индексации, там очень много аватарок.
Есть предположения как выйти из этой ситуации, пока не реализовано.
Да и стоит ли это?
Это не фишинг!!!
сервис находится в тестовом режиме
находит не все, причины:
— люди часто меняют аватарки, что значит что надо обновлять ее
— в вк более 250 000 000 страниц, из которых как показала практика ококло 30% либо удалены либо заблокированы
— остается окло 200 000 000 записей, что занимает не мало места, поэтому загружено там не все еще
Вы работали в Delphi? Там организовано происходит вот таким вот образом.
И тут тоже не обязательно указывать схему, а во всех своих запросах жестко прописывать её. Каждый решает сам на свое усмотрение.
Я не считаю это костылем, это дополнительная опция.
В такой ситуации (переименование схемы) Вы поступаете:
Вар. 1. берете, изучаете каждый запрос и переписываете. (в каждом запросе меняете наименование схемы)
Вар. 2. берете допустим String Replace и делаете массовую замену «схема1.» на «схема2.»
В обоих вариантах возможны ошибки, где то что то не доглядели, где то что то заменили не так. И тратите время…
В Delphi, есть компоненты для работы с БД, там сразу в конекшене прописывается имя схемы при необходимости. Тут все так же.
Код меняется, только во вьюшках (представлениях).
Клиентская часть остается неизменной. Почему не правильно, если все работает и ничего этому не мешает?
Да, в приведенных примерах использование using правильнее.
В других местах, где объект является общим для нескольких методов, предпочитаю создать один объект ( содним конекшеном) и использовать его, а не для каждого метода создавать свои объект и новый конекшен.
По поводу освобождения, мне кажется, что тут у вас не какие то космические расчеты, которые нельзя доверить GC для освобождения памяти.
Предпочитаю делать это сам и наверно это дело привычки, т.к. основное время пишу на Delphi
В проекте изначально было принято решение, разделять на схемы по модулям, затем было решение произвести объединение некоторых схем по процессам. В итоге вместо нескольких схем, стала одна.
думаю возник сразу пару вопросов:
— одинаковые таблицы
Одинаковые таблицы, если такие имелись, сливались в одну ( по данным ). Смысл и структура таблиц с одинаковыми названиями были одинаковыми. Ключ в таблице было поле, не ID а GUID ( проблем с объединением не было )
— одинаковые вьюшки (представления)
Опять таки они совпадали, и во многих случаях это были прообразы вьющек из других схем ( которые объединились)
1. для оптимизации приложения, все соединения с БД лучше закрыть сразу. 2. класс использует объект, который реализует метод Dispose, следуя правилу №2 из одной статьи на хабре , нужно использовать dispose
— Правило первое: не применять (до тех пор, пока это действительно не понадобится)
— Правило второе: для класса, владеющего управляемыми ресурсами, реализуйте IDisposable (но не финализатор)
— Правило третье: для класса, владеющего неуправляемыми ресурсами, реализуйте IDisposable и финализатор
>> Что мешало использовать стандартные строки подключения…
— возможно знания или исходил из того, что может смениться БД, но на тот момент я не нашел ничего лучше кроме appSettings
>> нумерованными значениями
— нумерованные значения были использованы, для нумерации модулей. Никто не мешает вместо нумерации использовать наименование модулей, например:
<add key="UserNameCore" value="UserNameCore" />
<add key="PasswordCore" value="PasswordCore" />
<add key="SchemaCore" value="SchemaCore" />
<!-- Данные подключения к БД для 1го модуля системы -->
<add key="UserNameMod1" value="UserNameModule1" />
<add key="PasswordMod1" value="PasswordModule1" />
<add key="SchemaMod1" value="SchemaModule1" />
>>Зачем нужен год-класс, чем вам стандартная модель Connection/Command не угодила?
класс нужен для работы с ObjectDataSource, и дальнейшем подсоединении его к гриду
>>Вы бы хоть описали, что вам не так в npgsql
1. Для того что бы создать и заполнить DataSet результатом SQL запроса нужно
— создать сам датасет
— создать адаптер
— заполнить датасет данными из адаптера
а тут это делается одной строчкой
CreateDataSet(ds, 'Select * from ~vyear~')
аналогично с заполнением параметров «команды» и т.п.
одним словом идет сокращение кода
2. Работа со схемами. По умолчанию работал со схемой public, для других схем нужно пописывать наименование схемы в коде, например
Select * from myschema.mytable
и при переименовании схемы, нужно исправлять все sql запросы, а тут за счет
Select * from ~mytable~
достаточно будет изменить только параметр в конфиге
ng2-translate способ не понравился тем, что там мешает кеширование браузера. При обновлении словаря, файлы из папки i18n в формате json кешируются и у клиента моут обновиться только спустя какое то время. ( возможно можно настроить, что бы в продакшене так же приписывать к названию файлов guid)
использую другой translate чуть модифицированный (что бы можно было использовать в shared module)
https://github.com/AtnagulovID/Angular-2-CLI-Learn-project/tree/master/src/app/_translate (откуда взял не помню, но кода меньше чем в ng2-translate это во первых и в файлы переводов тоже идут как часть приложения в продакшене на angular cli, так что нет проблем с кешированием браузеров)
atnagulovid.myjino.ru — тут можно посмотреть как работает (приложение само ниочем, создается во время изучени я angular 2 )
( либо вручную через свои телефон )
хранение и исползование такого вида информации законно ли?
Вся проблема в индексации, там очень много аватарок.
Есть предположения как выйти из этой ситуации, пока не реализовано.
Да и стоит ли это?
а все остальное к нему не относится
сервис находится в тестовом режиме
находит не все, причины:
— люди часто меняют аватарки, что значит что надо обновлять ее
— в вк более 250 000 000 страниц, из которых как показала практика ококло 30% либо удалены либо заблокированы
— остается окло 200 000 000 записей, что занимает не мало места, поэтому загружено там не все еще
И тут тоже не обязательно указывать схему, а во всех своих запросах жестко прописывать её. Каждый решает сам на свое усмотрение.
В такой ситуации (переименование схемы) Вы поступаете:
Вар. 1. берете, изучаете каждый запрос и переписываете. (в каждом запросе меняете наименование схемы)
Вар. 2. берете допустим String Replace и делаете массовую замену «схема1.» на «схема2.»
В обоих вариантах возможны ошибки, где то что то не доглядели, где то что то заменили не так. И тратите время…
В Delphi, есть компоненты для работы с БД, там сразу в конекшене прописывается имя схемы при необходимости. Тут все так же.
Клиентская часть остается неизменной. Почему не правильно, если все работает и ничего этому не мешает?
В других местах, где объект является общим для нескольких методов, предпочитаю создать один объект ( содним конекшеном) и использовать его, а не для каждого метода создавать свои объект и новый конекшен.
Предпочитаю делать это сам и наверно это дело привычки, т.к. основное время пишу на Delphi
думаю возник сразу пару вопросов:
— одинаковые таблицы
Одинаковые таблицы, если такие имелись, сливались в одну ( по данным ). Смысл и структура таблиц с одинаковыми названиями были одинаковыми. Ключ в таблице было поле, не ID а GUID ( проблем с объединением не было )
— одинаковые вьюшки (представления)
Опять таки они совпадали, и во многих случаях это были прообразы вьющек из других схем ( которые объединились)
1. для оптимизации приложения, все соединения с БД лучше закрыть сразу.
2. класс использует объект, который реализует метод Dispose, следуя правилу №2 из одной статьи на хабре , нужно использовать dispose
— Правило первое: не применять (до тех пор, пока это действительно не понадобится)
— Правило второе: для класса, владеющего управляемыми ресурсами, реализуйте IDisposable (но не финализатор)
— Правило третье: для класса, владеющего неуправляемыми ресурсами, реализуйте IDisposable и финализатор
Зачем из за изменения названия схемы, изменять все SQL запросы, когда можно это все автоматизировать и сэкономить время?
Посмотрю как время будет.
Основная работа у меня на Delphi, поэтому с C# знаком только поскольку постольку.
— возможно знания или исходил из того, что может смениться БД, но на тот момент я не нашел ничего лучше кроме appSettings
>> нумерованными значениями
— нумерованные значения были использованы, для нумерации модулей. Никто не мешает вместо нумерации использовать наименование модулей, например:
>>Зачем нужен год-класс, чем вам стандартная модель Connection/Command не угодила?
класс нужен для работы с ObjectDataSource, и дальнейшем подсоединении его к гриду
>>Вы бы хоть описали, что вам не так в npgsql
1. Для того что бы создать и заполнить DataSet результатом SQL запроса нужно
— создать сам датасет
— создать адаптер
— заполнить датасет данными из адаптера
а тут это делается одной строчкой
аналогично с заполнением параметров «команды» и т.п.
одним словом идет сокращение кода
2. Работа со схемами. По умолчанию работал со схемой public, для других схем нужно пописывать наименование схемы в коде, например
и при переименовании схемы, нужно исправлять все sql запросы, а тут за счет
достаточно будет изменить только параметр в конфиге