Задать вопрос
  • Почему все скептически относятся к MongoDB?

    @nirvimel
    Во-первых, я не отношусь к NoSQL скептически. Я считаю, что у таких продуктов большое будущее на рынке. Потому, что для них существует огромная ниша, которую они только начинают занимать. В свое время PHP занял такую нишу в качестве массового языка для веб-разработки, хотя многие относились и относятся к нему скептически, и это даже мягко сказано.

    Во-вторых, что касается проблем NoSQL. Его главная проблема - та задача, которую он пытается решить.
    Итак, у нас был старый добрый RDBMS, которому приходилось исполнять сложные запросы, комбинировать данные из разных таблиц. Это и была причина его торможения. Поэтому перед ним ставили всякие redis, memcached и просто внутренние кеши приложения. И это решало проблему быстродействия.
    Потом появились парни в розовых кедах и сказали: "Зачем такая сложная архитектура? Поменяем все это на ОДИН сервер, который будет хранить объемы как oracle и отдавать со скоростью memcached". Это решение выглядело как полностью аналогичное предыдущей схеме, но с меньшим количеством деталей. Аналитики и бизнес ухватились за это и возвели NoSQL на трон, а предыдущий стек технологий отправили в корзину. Все казалось замечательно. Но при этом упустили всего одну мелочь - данные в NoSQL хранятся не в Нормальной форме, и это неотъемлемое свойство технологии не возможно исправить.
    Чем опасно хранение данных не в нормальной форме? Это начали понимать по мере разработки. Когда структура базы подогнана под запросы, эти данные выбирающие, и когда в процессе разработки возникает необходимость выбирать данные как-то по-другому, приходится создавать новые структуры, под новые запросы, то есть ДУБЛИРОВАТЬ ДАННЫЕ. Вот с этого момента эротический сон превращается в кошмар. Когда данные пишутся в одно место, то они тут же мгновенно (или не мгновенно?) должны быть отражены в другом месте. Если производить такую синхронизацию синхронно с записью, то возникают забытые проблемы с производительностью, если асинхронно - то возникают (совсем недавно забытые) проблемы с инвалидацией кешей. Но это - только начало. Следующий кошмар - контроль (ссылочной, например) целостности. Вся грязная работа, которой раньше занимался движок RDBMS, опять ложится на плечи прикладных кодеров. В итоге наступает момент, когда усложнять логику, контролирующую работу с базой (раньше о такой необходимости даже не слушали) становится дороже чем выбросить весь проект в корзину и переписать все обратно на нормальную RDBMS. И тогда приходит философское понимание того, почему эту классическую форму данных в науке называют НОРМАЛЬНОЙ.
    Ответ написан
    2 комментария
  • Почему так сильно подорожали аккаунты pro на российских биржах фриланса? С чем это связано?

    @protven
    Замечательные владельцы фриланс-бирж подмигивают и намекают нам как могут. "Бегите, бегите вы из этой страны". xD
    Ответ написан
    Комментировать
  • Действительно ли Ruby сложнее PHP/Python? Если да, то почему?

    @thepry
    Ruby on rails, 1С разработчик
    Чем рубин сложнее, например PHP, JS?


    Мне не кажется сложнее, учитывая, что код в руби ведет себя предсказуемо.

    Куда потом двигаться дальше?

    Подтянуть весь стек веб разработки - git, sql, js с фронтенд фрейморками(backbone, react...).

    Вакансий в этой сфере относительно мало, работодатели ищут сразу сеньоров.

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

    Я для себя как-то сформулировал правило - человек должен отправить 100 откликов на вакансии прежде чем жаловаться на то, что «работы нет».
    Ответ написан
    Комментировать
  • Include скриптов сайта через index.php, нормально ли это?

    Это называется "роутинг" погуглите это слово, во фреймворках он встроенный, но можно и самописный написать.
    Да это нормально, считается современным, продвинутым подходом.
    Ответ написан
    Комментировать
  • ООП в высоконагруженных проектах считается устаревшим?

    miraage
    @miraage
    Старый прогер
    Мужик дегенерат, однозначно.

    // EDIT

    Посмотрел прикрепленные исходники. Закапал святую воду в глаза.
    Выкиньте это всё, покажите ему, например, PHP: The Right Way.

    Я бы на Вашем месте уволился, незадумываясь.
    Ответ написан
    Комментировать
  • Расскажите про ваш опыт с файловыми системами для мелких файлов?

    65536
    @65536
    я вот так раскладываю
    b445816de05cb28c2fb8990cb11a6b3d.png
    заодно идентичные можно хранить 1 раз

    когда хранил все в одной папке в нее просто не зайти было, а если зайдешь то нечего делать. и это не терабайты были а какие-нибудь 10 гб
    Ответ написан
    5 комментариев
  • Сидячий образ жизни кодера на самом деле ухудшает здоровье?

    Как начал много зарабатывать стал больше хавать
    А также меньше двигаться
    Как результат - +12кг за 5 лет (но за компом сижу только 2 года, до этого работал эникейщиком). Причём я не пью и не курю.. За 2 года сидения за компом также начала искривляться спина.

    Сейчас решил сбалансировать питание, ради осанки пошёл в бассейн (заметил как спина стала сильнее и ровнее сидеть могу дольше, чем раньше). Конечно же нужно ещё бегать или в зал пойти, чтобы привести себя в форму, но пока лень.

    Жаль что раньше не осознал как всё печально может случиться - ел бы меньше, двигался больше.

    Хотя есть люди, которые также лет 5 едят фастфуд, пьют пиво, курят и как были в форме так и остались, причём это не спортсмены. От обмена веществ очень много зависит ещё, я вот к чему.
    Ответ написан
    Комментировать
  • Есть ли кроссбраузерная поддержка для transform?

    bootd
    @bootd Куратор тега CSS
    Гугли и ты откроешь врата знаний!
    Нет! Если это Css3 свойство, каким образом вы хотите что бы оно заработало, например в старом ie?
    Ответ написан
    Комментировать
  • Какие разделы английского стоит выучить для фриланса?

    @heartdevil
    плыву как воздушный шарик
    Учите сугубо ИТ английский.

    Открою секрет.

    Сидите часто на stackoverflow и читайте самые популярные вопросы и ответы от крутых разработчиков (владеющих отличным английским). Там легко понять уровень английского по ответам и вопросам. Это поможет не только "вариться" в своей среде, но и "вариться" по-английски. Запоминайте структуру сложных вопросов. И как они вообще подготавливаются. Далее смотрите, как на них отвечают. Зачастую, всегда просят описать задачу. Что, собственно, на самом деле и происходит на фрилансе. Далее, просят уточнить некоторые моменты. Затем постят свои решения с описаниями. Тут тоже нужно уделить внимание на подготовку ответа. Часто, конечно, это просто код)), но вам никто не запрещает, к примеру, спросить уточнения (не для понимания кода или алгоритма, а для понимания того, как разработчик будет разжевывать вам ответ на английском ;-)), если самолюбие позволяет)). Можете даже выписывать отдельные словосочетания, которые они применяют. К примеру, создал массив, присвоил значения переменной, пробежался циклом по массиву, создал класс, имплементировал интерфейс, перегрузил чего-то там и так далее.

    В таком ритме быстро научитесь понимать вопросы на английском и умело отвечать, но все это письменно. Разговорный вам может понадобиться, если клиент будет часто по скайпу вам названивать. Его освоить в разы сложнее. Поэтому можете честно заявлять клиенту, что уровень пока у вас не позволяет вести разговор. А там все от клиента будет зависеть.
    Ответ написан
    3 комментария
  • Какую СУБД лучше выбрать?

    voidnugget
    @voidnugget
    Программист-прагматик
    Эмм... для начала нужно выучить мат часть и разобраться что такое B-tree и R-tree и как они фигурируют в современных СУБД, разобраться что такое "6ая нормальная форма" (второй курс универа).

    Если это мускуль у которого "бесконечная длинна" таблички - от 200Гб и до 1Тб, то достаточно просто использовать ENGINE ARCHIVE c R-tree индексом. В противном случае (если меньше 200Гб) нужно (учить мат часть и вправлять мозги) рефакторить базу. Лучше слезть с MySQL на PostgreSQL, а вот c MongoDB - куча проблем. Стандартные СУБД на основе B-tree для баз от 200Гб+ не подходят. MySQL исключение из-за модульности системы хранения, имеется ввиду ENGINE ARCHIVE, но так как там нет T-tree - нужен нормальный кэш. PostgreSQL даже похуже будет - нужно ковырять различные расширения типа cstore_fdw и т.п.

    uint64 ID'шник в виде хэша - очень спорное решение, даже если и предположить что в какой-то вселенной нет коллизий, то точно не в этой, и дополнительно нужно прогонять фильтр Блума. Хотя, лучше всего, просто использовать композитные ключи и не заморачиваться.

    Можно ещё попробовать HBase в Apache Phoenix обернуть, там уже есть всё готовое - и фильтр Блума и индексация, можно даже X-tree оформить. HBase, кстати, хорошо масштабируется на запись, а Cassandra, наоборот, - на чтение.

    Шардинг (партицирование) и репликацию нужно оформлять когда схема хорошо нормализирована, и когда более-менее ясно какие таблички нужно масштабировать на запись, а какие на чтение - где-то нужен CA, где-то CP, а где-то AP... (CAP теорема)

    Очень весело в PostgeSQL писать сишные функции для агрегации в материализованные представления, особенно весело с GPGPU.
    Ответ написан
  • Как вернуть мотивацию к обучению?

    @Gettoheaven
    Автор я конечно не Брюс Ли и не Крутейший какой-нибудь фронтэндер. Скажу так:
    1. Детский инстинкт: все и сразу (забудь об этом)
    2. Это упорный труд.
    3. Обязательное удовольствие от изучения, работы.
    4. Обязательное физическое развитие ( спроси у любого, он кивнет тебе)
    5. Медитация ( это тяжело, но если поймешь тему все ключи будут в кармане)
    6. Наконец же пойми себя, никогда не поздно это сделать. К чему ты тянешься, что любишь. Возможно ты до сих пор не знаешь себя.
    7. Взлеты и падения: у всех они свои и ты не один такой. Нужно уметь пережить такие моменты.
    8. Я видел много веб-программистов у которых стаж с 2006 года(делай свои выводы)
    9. Не теряй времени, иногда кажется что ещё все впереди и времени фигова туча, на самом деле это мираж.
    10. Не грызи слишком себя, иногда это совсем не нужно.
    Ответ написан
    3 комментария
  • Как вернуть мотивацию к обучению?

    Zifix
    @Zifix
    Barbatum
    Попробуй написать какой-нибудь полезный проект, где будут применяться новые знания — вот и результат.
    s_curve450.gif
    Ответ написан
    1 комментарий
  • Как переписать структуру таблиц или запросы, чтобы работал индекс для моих выборок?

    @ollisso
    Для начала объясню почему индексы в вашем случае не работают и не могут работать.

    > OR links.domain LIKE CONCAT(sites.domain, '.%')

    CONCAT - это функция, и вы работаете с результатом функции.
    Т.е. получается что в вашем запросу нужно:
    1. выбрать все строки из links
    2. подсодеденить к каждой строке по sites.domain или sites.domain результат фунции.
    => нужно посчитать каждую строку каждый раз.
    Это очень много.

    что я бы сделал:
    1. создал таблицу доменов
    в ней:
    id | main_id |domain
    1 | 1 | com.youtube
    2. | 1 |com.youtube.www
    3. | 1 |com.youtube.subdomain


    Во всех таблицах - перешёл бы на этот ключ.
    2. тогда ваша выборка сокращается до:

    SELECT links.id, links.url, sites.id AS site_id, sites.description 
    FROM links
    LEFT JOIN domains ON links.domainId = domains.id
    LEFT JOIN sites ON sites.id = domains.main_id

    (смутно понимаю что вы хотели в этом запросе, поэтому уж не обессудьте :) )

    Т.е. основной посыл:
    переходите на int- ключи

    PS: Так же это называется нормализация базы данных. Хранить много одинаковых строк - это плохо.
    Ответ написан
    5 комментариев
  • Как правильно переделать систему хранения высоконагруженного сайта?

    @DobriyJuk
    Сетевой инженер, системный администратор
    Распределенная ФС - ваше все. Как мне видится, из бесплатных вариантов, вам идеально подойдет Ceph. Но бесплатна она относительно, по скольку там есть некоторые требования по серверам. Точнее, по их кол-ву. Плюс, если скорость доступа к данным важна (само-собой), то всякими примитивными Файбер Ченнелами вы здесь не обойдетесь. Но это уже не особенности ФС, а просто здравый смысл. Сама ФС будет прекрасно функционировать даже на FastEthernet.
    Ответ написан
    7 комментариев
  • Стоит ли париться за престижный диплом?

    @Siroque
    Я отучился 5 лет в Российском вузе и 5 лет за бугром, в Германии. Так что, думаю, глупости не скажу.
    Всё зависит от ваших целей. Хотите стать специалистом, которому не стыдно переступить порог и больших и малых компаний? Или хотите начать "по уму" свое дело? Учиться НАДО.
    Если хотите "кодить за еду" (я утрирую. Peace!) - то вуз вам не нужен, потеряете время.
    И в вашем случае я бы именно рвал опу и пытался бы закончить МИФИ. Зачем?
    1. ЧСВ +100. Тут кто-то назвал ЧСВ от полученного диплома "совковым мусором". Так я бы наоборот, сложившуюся в данный момент ситуацию с деградацией системы образования и обесцененными дипломами назвал бы мусором. В Германии на тебя смотрят другими глазами уже за то, что ты только поступил ВУЗ.
    2. В вузе вы научитесь (если закончите) упорядочивать свои мысли, излагать их устно и на бумаге понятным другим специалистам языком.
    3. Вникните поверхностно во все важные концепты и технологии, понахватаете по верхам знаний из множества доменов, до которых самоучке копать и не вздумается.
    4. Как следует из п.3 у вас будет 5 лет на то, чтобы знакомится с разными доменами и выбрать тот, который вас заинтересует. А то может промучаетесь программистом весь свой век так и не узнав, что у вас талант в области моделирования бизнес и ИТ процессов.
    5. Без диплома есть хорошая вероятность лет через 10 упереться в "потолок". Особенно в иностранных компаниях. Пример тому немец, что на против меня сидит в офисе. Шарит в своем деле не по-детски и рад бы уже рулить проектами, но дипломом в свое время не обзавелся. Жалеет теперь.
    6. Очень часто преподаваемый в вузах материал называют устаревшим еще вчера. Это так, да не совсем. В вузе вам не будут преподавать angular и вряд ли вы будете писать мобильные приложения. Но (вдруг) и задумка не в этом. В вузе вам дадут теоретическую основу, которая поможет вам в будущем не только понять, как использовать angular, но и как его не использовать. У вас вдруг появится понимание, что angular, MVC, .NET, Agile, UML, NoSQL и т.д и т.д. это не более чем иструментарий и лучше знать, когда какой инструмент применить чтобы прийти к конечному продукту наикратчайшим путем, чем быть ниндзя в каком-то одном инструменте/фреймворке/технологии.
    7. Если повезет с профами, то услышите много баек из продакшена.
    8. Если еще больше повезет, то встретите в универе человека, который станет вам наставником.

    Само собой, МИФИ по всем описанным пунктам уделывает "Дубну". Вот и решайте, надо оно вам или не надо. Если вы хотите поддержать тенденцию на получение корочек "в стол" - ради Бога. Но если собираетесь именно учиться, то делайте без компромиссов. Да, если идти именно учиться, а не отбывать номер, то будет трудно. Труднее чем "самоучкам". Но в конце концов оно того стОит, ведь цена диплома для тебя лично это то, что именно ты сделал ради того, чтобы его получить.

    А еще проблема в том, что в интернете очень много историй о том, что кто-то взял книжку, вызубрил материал, сбацал свое приложение, пошел работать в гугл. Затык в том, что люди, которые брали книжки и бились неделями, а то и месяцами, с ветряными мельницами и забивали вновь и вновь, своих историй в интернете не рассказывают. А таких большинство. Все все прекрасно знают и понимают - надо брать, надо читать, но что-то идет не так уже на стадии "JUST DO IT".

    Вот как-то так. Но, наверное, самый большой минус в отсутствии диплома / учебе в средненьком вузе при возможности обучения в ТОПе - та мысль, которая будет подкрадываться с каждым годом всё ближе - "А что было бы если..."
    Ответ написан
    2 комментария
  • Стоит ли париться за престижный диплом?

    @anelyubin
    “Always be the worst guy in every band you’re in. - so you can learn. The people around you affect your performance. Choose your crowd wisely.” ― Chad Fowler, The Passionate Programmer

    Я думаю, не надо переводить? А если надо, то поступай в Дубну и оставайся никем.
    Ответ написан
    Комментировать
  • Стоит ли париться за престижный диплом?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Факт №1: Диплом нужен. Чем более престижнее ВУЗ тем лучше.

    Но при этом надо помнить нашу любимую поговорку "Встречают по одежке, провожают по уму". Другими словами диплом, это аналог одежки. Куда бы Вы не устраивались работать в будущем в Вашем резюме глаз рекрутера зацепится на строчке с престижным ВУЗ-е, но в конечном итоге Вам таки придется общаться с конкретным и прагматичным технарем, который-то и "проводит по уму" ;)

    Другими словами, Вам никто не мешает развиваться как технарю и специалисту где бы Вы не учились. НО. Более престижный ВУЗ позволит чаще цеплять глаза рекрутеров и тем самым даст Вам уверенность в самом себе. Уверенность в том будущем, когда Вы можете поднять задницу и сказать любому работодателю "ОК. Мы с Вами хорошо работали, но пора и честь знать"

    Факт №2:
    В более престижном ВУЗ-е более профессиональнее люди.

    Я не говорю о количестве. Я говорю о людях. Везде встречаются мозги и очень хорошие мозги. Но в более престижных встречаются чаще. Это говорит о том, что Вы можете начать вращаться среди тех профессионалов, с которыми Вам будет приятнее работать как в течении студенчества, так и в будущем "работая на дядю".
    У меня из коллег и друзей есть и МГУ-шники и Бауманщики. Могут сутками жрать окдан, но ей богу пишут словно Брайн Керниган. Ни строчки лишнего. Строго по делу. А если просишь совета. Услышишь ясное, прогматичное и аргументированное мнение. Да, те кто учился в менее престижном или вообще не учился тоже есть и даже очень бошковитые, но это исключения подчеркивающее правило.
    Ответ написан
    Комментировать