Ычан: [d | au / b / bro / hr / l / m / mu / o / s / tran / tu / tv / vg / x | a / aa / c / fi / jp / rm / tan / to / vn]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Последние 50 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 25965)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, WEBP, XCF, ZIP размером до 5000 кБ.
  • Ныне 3536 unique user posts. Посмотреть каталог
  • Предельное количество бампов нити: 500
junior_developer_nene.png - (648.30KB, 720×720)
25965
No. 25965  
Здесь можно получить помощь и консультацию по любому языку программирования, в любой сфере разработки. Не важно, программируете ли вы собственного робота, пишете серверную приблуду, интегрируете чужие API, ковыряете игру, или пытаетесь сделать сайт на Wordpress - если аноним что-то об этом знает, он обязательно поможет.

Пополняемая база знаний: http://pastebin.com/AGhLZppH

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

Другие тематические нити (иногда обновляется): https://pastebin.com/psy43ibG

Примеры кода лучше выкладывать в виде ссылок на http://pastebin.com или http://ideone.com
Фронтендные вещи лучше выкладывать на http://jsfiddle.net

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

Чтобы не сбивать новичков с толку, а также не разбавлять полезную информацию мусором, беспредметные споры типа "какой язык / парадигма / библиотека / етц лучше" здесь запрещены. Для подобных вещей теперь есть отдельная диспутов нить >>/dev/21353

Если здесь поселится достаточное количество программистов на одном языке / одной сферы, можно будет их выделить в отдельную нить, а в этой оставить на неё ссылку.
По мере поступления вопросов можно составлять FAQ и базу знаний.

Архив нитей:
http://410chan.org/dev/arch/res/14160.html
http://410chan.org/dev/arch/res/15681.html
http://410chan.org/dev/arch/res/17424.html
http://410chan.org/dev/arch/res/19666.html
http://410chan.org/dev/arch/res/21641.html
http://410chan.org/dev/arch/res/23830.html

Прошлая нить пока тонет тут: >>/dev/23830
311 сообщений пропущено. Показаны 50 последних сообщений
No. 27019  
Чиочан, ты когда-нибудь пользовался VS Code + cmake под линукс?
Нажимаю F5, но почему-то компилируется только активный файл, а не весь проект, все, что написано в CMakeLists.txt игнорируется. Если собирать руками из консоли, то все нормально. Причер когда-то давно все нормально работало. Что делать, как чинить?
No. 27023  
>>27019
>VS Code + cmake под линукс
>почему-то компилируется только активный файл
Есть вариант, что так просто указано в твоем tasks.json:
>You can modify your tasks.json to build multiple C++ files by using an argument like "${workspaceFolder}/✱.cpp" instead of ${file}.This will build all .cpp files in your current folder.

Пример tasks.json который дают человеку со схожей проблемой:
https://stackoverflow.com/a/59236875
No. 27024  
>>27023
Да, это помогло. Но при этом все равно для сборки используется не cmake и CMakeLists.txt. Можно как-то заставить среду использовать их?
No. 27027  
>>27024
>Можно как-то заставить среду использовать cmake?
По идее ты можешь просто сделать
>(Ctrl+Shift+P) and run CMake: Build

Но вообще нужно чтобы проект был сконфигурен под CMake, для чего нужно три вещи
>Select a kit
>(Ctrl+Shift+P) and run CMake: Select a Kit

>Select a variant
>(Ctrl+Shift+P) run the CMake: Select Variant command

>CMake: Configure
>(Ctrl+Shift+P) and run the CMake: Configure
или даже
>(Ctrl+Shift+P) and run the CMake: Delete Cache and Reconfigure

Все из этого сделано?

>If you don't see the compiler you're looking for, you can edit the cmake-tools-kits.json file in your project.
Наличие этого файла в проекте наверное хороший индикатор.
No. 27028  
faptcha_php.png - (2.89KB, 90×50)
27028
>>27018
Так это жизнь или предсмертная агония? А может уже посмертное существование...
No. 27029  
Вопрос начинающего по гиту.

Пусть в репозитарии имеется некоторое количество файлов в определенном формате, например — file1.xml, file2.xml, file3.xml. На самом деле их, конечно, куда больше.
Допустим, я решаю поменять избыточный для данной задачи формат, создаю ветку xml2csv, прогоняю их через скрипт, получаю, соответственно file1.csv, file2.csv, file3.csv.
А тем временем в master добавились новые коммиты, изменился file2.xml, удалился file3.xml, добавился file4.xml. Ну и, конечно, куча других изменений, которые этого формата не касающихся.

Внимание, вопрос. Как теперь это дело мержить?
Причем так, чтобы сохранилась история изменений в file2.csv?

Ниже описываю мою ламерскую попытку (только не смейтесь):
1. Создал ветку xml2csv2 из текущего master,
2. В ней merge с предыдущей, куча ругани, git add для всех csv, git rm для всех xml. Commit.
3. За пределами гита сконвертировал в csv все взятые из master xml, удалил все csv в своей ветке, заменил на эти, git add для всех csv.
4. Теперь гит ругается на удаленные файлы, как заставить git rm удалить все те файлы, которые удалены фактически (и только их) — не нашел. Пришлось делать git commit -a...

Это в примере там один файл удален, на самом деле — полсотни. Более того, часть конвертируемых файлов — бинарные, а еще файлы с метаданными, у которых имя не меняется, а merge пришлось делать с хитрыми опциями, иначе оно фейлилось...

В общем ясно, что этот способ никуда не годится. Результат я так, конечно, получил, историю изменений сохранил, но какой ценой?
Причем только грубую историю изменений — между теми точками, в которых я утягивал их к себе.
Как сделать правильно?
No. 27030  
>>27029
Тоже хочу узнать, как поступить правильно в такой ситуации. Как бы сделал я:

1. Начал бы хранить CSV-файлы в отдельной новой папке. Это помогло бы избежать конфликтов и хранить историю изменений как старых, так и новых файлов.
2. Поменял бы код / конфигу, чтобы проект работал с CSV-файлами из этой новой папки.
3. Примержился бы с этим в мастер, чтобы поймать момент внешних изменений в старые XML файлы и чтобы все были в курсе, что теперь надо пользоваться CSV (ха-ха)
4. Добавил бы старые XML файлы в .gitignore, чтобы в них нельзя было внести изменения случайно, и примержился бы в мастер еще раз. Рецепты как правильно заигнорить ранее затреканные файлы в зависимости от пожеланий:
https://stackoverflow.com/a/54481162 (оставить файлы только себе)
https://stackoverflow.com/a/936290 (оставить файлы всем)
5. Перенес бы пойманные на данный момент изменения XML файлов в CSV
6. Примержился бы в последний раз

После чего можно в принципе и грохать папку с XML.
По идее, можно действовать агрессивнее и первым сделать пункт 4, т.е. сначала антрекнуть все старые файлы, а потом уже их конвертировать.
No. 27032  
>>27029
git rebase
No. 27033  
>>27030
>Примержился бы с этим в мастер,
>(ха-ха)

Именно что ха-ха, никот мне не даст туда примержиться, у меня свой форк, у них свой (на самом деле "их" там как минимум три разных команды и у каждой свой форк и свое видение развития проекта. А я, видимо, стану четвертым...)

Но в целом за идею спасибо. Со сменой путей к данным там всё грустно, но можно раскидать разные варианты форматов по разным директориям, а ту, которая захардкодена у них в коде, делать ссылкой на одну из них.

>>27032
Эээ... А как его можно использовать в этой ситуации?
No. 27034  
>>27033
>Можно раскидать разные варианты форматов по разным директориям, а ту, которая захардкодена у них в коде, делать ссылкой на одну из них
Это наверное был бы лучший выход из ситуации, главное чтобы по гиту все опять сошлось с этой папкой, когда изменения из апстрима будешь тащить.
No. 27035  
>>27033
Сначала все их коммиты, затем все твои коммиты, затем мерж с deprecation notice, затем удаление.
Если у файлов разное расширение, впрочем, там и так не должно быть никаких конфликтов, потому что это разные файлы.
No. 27037  
rzFrTvDMhEA.png - (2.23MB, 960×1280)
27037
Итак. C# + ASP .NET, работа с SQL и NoSQL, Redis и Memcached, ORM (EF Core, Dapper), Docker. Нет коммерческого опыта, есть опыт работы в IT сисадминством (работа с серверами, linux, windows, виртуалки, ad dc...).
367 просмотров, 49 откликов, 5 созвонов с работодателем и 2 тестовых. Ищу не очень активно (не веерная рассылка, а точечная, пишу понравившимся и подходящим работодателям), но долго, с февраля 2023 года.

Два тестовых:
1. Сделать REST Web API магазина автозапчастей с возможностью заказа, разных запросов к разным эндпоинтам (запчасти, клиенты, заказы) с возможностью кастомизировать выдачу (выдать запчасти только в наличии и отсортировать их по порядкам, выдать запчасти из определённой группы и/или с определённой ценой...) и "другие необходимые для нормального функционирования сервиса функции". Использовать MS SQL, EF Core, кэширование, Basic Auth, Swagger.
Сделал за неделю, было... немного тяжеловато, справился. Месяц долбал HRку для получения хоть каких-то ответов касательно вакансии (та умудрилась сходить в отпуск на неделю, но всё равно видно, что им не особо нужен я). Отказ из-за "неправильной архитектуры", "лишних функций, не входящих в ТЗ" и "грязного кода" (согласен, кстати).
Региональный автомагазин. Зарплата не указана, грейд не указан.

2. Описать словами и разобраться в выводе SQL-запроса (110 строчек и 4300 символов, рекурсивные и оконные функции и много забавных штук). Разобрался, всё ок. Прошёл на собес (о нём чуть ниже).
МТС. От 80000 рублей.

Собес: пообщался с HR по телефону до и после тестового, та пригласила на собес очный.
Общался час с 3 людьми в одной комнате, должности не сказали, но, судя по всему, они не связаны с технической частью. Искали человека, который будет поддерживать и документировать чужой древний код (без документации и программистов, работавших над кодом). 20к строк, ado .net, ms sql. И фронт, и backend, и сисадминство в том числе.
Спрашивали про мои проекты, я рассказываю про тестовое (описывал выше) на гитхабе, плюс разбираюсь в коде Jellyfin на github, хочу помочь, мне нравится программа и т.д. Ну и упомянул всколзь, что пишу давно на шарпе, с универа.

Вопросы:
Какие интересные проекты я делал в последние 3 года (когда начал говорить про web api, те сказали, мол, не, нам интересен университет, который я окончил в 2018 году)?
Есть ли опыт работы с чужим кодом (рассказ про чтение и разборку в коде Jellyfin был 10 минут назад)?
Есть ли опыт фриланса (нет)?
Как я, например, буду переводить проект с одной субд на другую. Отвечаю: смотрю на требования, смотрю, в чём могут быть различия и примерно думаю, где должны быть проблемы и т.д. Собеседующий: не, не это, вот например, субд на сервере, а сервер переехал, как ты будешь искать, где подключение к базе данных?
Я ничего не понимаю, говорю, что connection string в конфигах, смотрю на database context и прочее, это не проблема. Начинаю рассказывать про DI-контейнер, appsettings.json, MyDBContext : DbContext и прочее. Мужчина говорит, что ожидал ответа про то, как я найду в коде часть, которая отвечает за общение с базой данных. Я честно сдаюсь и прошу рассказать, какой ответ они хотят от меня. Оказывается, надо было отвечать про "взгляд сверху на код", про "общую картину и детали", прочую ерунду. Потом получаю всё тот же вопрос, но сбоку, мол, как бы ты работал с базой данных в программе и коде, как бы ты понял, что "именно эта строчка делает запрос".
Вздыхаю, мысленно прощаюсь с оффером. Говорю, что дал им ответ, но, раз они не поняли, то, наверное, у них какой-то хитрый способ общаться с базой данных? Отвечают: ADO .NET. Спрашиваю: а кто вам вообще нужен? Что за задачи, что за умения, навыки?
Ответ: мы не знаем многое про проект, потому что программе 6+ лет, программист ушёл, документации нет, всё плохо работает. Есть веб-сервис с фронтом и бэком, который что-то делает с запросами.

Устал, прошу или прислать мне тестовое, или написать отказ, желательно с фидбэком. Обещают дать задачку: на вход даётся табличка (excel?), а мне надо на фронте нарисовать график двухмерный.

пойду спать, к чёрту это всё.
No. 27041  
Чиочан, два вопроса:
1) Когда и как можно левелапнуться из джуна в мидла и что для этого нужно? Нормально ли для этого менять работу?
2) Какие Анонимус может посоветовать компании, где пишут на плюсах?
No. 27042  
>>27041
>Когда и как можно левелапнуться из джуна в мидла и что для этого нужно?
Цитирую HR: "Если 2 года опыта есть, то уже миддл"
Т.е. если будешь подаваться в другую компанию, то с таким опытом они тебя уже миддлом будут считать, если ты сам не укажешь обратное.
No. 27045  
>>27037
> Отказ из-за "неправильной архитектуры", "лишних функций, не входящих в ТЗ" и "грязного кода" (согласен, кстати).
Они твой код с минимальными правками себе на сервер задеплоили, и пользуются. Не думаешь так?
No. 27046  
>>27045
Я думал, но вообще в таком случае я буквально уклонился от пули, когда получил отказ. Тип, если ребята просят написать CRUDы у джуна без опыта работы под видом тестового, то это гнилая и тухлая контора, и хорошо, что я узнал до того, как поработал у них месяц или два.

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

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

К первым отнеслись Яндекс и конторы поменьше, завязаные на ML / компьютерном зрении или подобных вещах (они меня брали), ко вторым - Вконтакт и всяческие писатели запросов в базу (разумеется, они меня не брали, лол).

Так что тебе повезло, что ты с этим не связался, найдешь что-то поприличнее.

>>27041
> компании где пишут на плюсах
Яндекс же. Главное решить алгоритмы, остальному научат. Из минусов - у них своя закрытая экосистема (даже STL заменен на свои велосипеды), так что на выходе ты приобретешь опыт только в языке как таковом (и, быть может, в проектировании).
No. 27051  
Чиочан, нужен простой и понятный гайд, как с нуля прикрутить с тестовой программке на C++ простенькие юнит-тесты, желательно Gtest, желательно в VScode
No. 27054  
>>27051
По идее для VSCode тебе надо воспользоваться вот этим:
https://github.com/matepek/vscode-catch2-test-adapter

А обычная Visual Studio вроде как поддерживает эти тесты из коробки.
No. 27061  
Clipboard06.webp - (49.89KB, 811×1036)
27061
На днях увидел как анончик играет в ВНку Sunrider и встал вопрос о линейности новелок. Существуют ли готовые инструменты для построения графа диалогов женерик игры на ренпае? Если готовых нет, в какую сторону стоит думать для его написания?

С одной стороны, это тьюринг-полный скриптовый язык с возможностью пайтон-вставок, а значит, предполагаю, нужно строить какое-нибудь синтаксическое дерево. Никогда подобного не делал, поможет ли в этом модуль ast из стандартной библиотеки? Или, может, будет проще переиспользовать ast.py самого движка?

С другой стороны, пока осилил только банальный построчный проход по https://raw.githubusercontent.com/vaendryl/Sunrider/master/script.rpy с сохранением лейблов и джампов. Сначала получилась совсем ерунда, потому что многие переходы сделаны через запись имени лейбла в переменную и последующий джамп на метод dispatch. Добавил костыль, стало гораздо лучше, можно проследить ветвление диалогов в рамках отдельных миссий, но всё же хотелось бы нечто более универсальное.

// при попытке приаттачить большую svg, мускуль упал с ошибкой Out of range value for column 'image_w' at row 1 - залью отдельно на кошкокоробку https://files.catbox.moe/91r4mu.svg
No. 27062  
>>27061
>Существуют ли готовые инструменты для построения графа диалогов женерик игры на ренпае?
Знаю как минимум один, но не знаю насколько он тебя устроит:
https://github.com/EwenQuim/renpy-graphviz
No. 27063  
>>27062
Спасибо, красивенько! Автор подошёл более основательно, но, по сути, делает то же, что и я: читает построчно, складывает лейблы и джампы в граф, потом рисует графвизом. Только там, где я запоминаю всего лишь предыдущую строку, он накапливает весь контекст – таким образом у него больше информации, на каком уровне вложенности находится и что ему повстречалось раньше. Здорово придумал, утащу к себе. Но, всё же, не AST.
No. 27065  
>>27063
>Спасибо, красивенько!
Рад что удалось помочь, заходи!
No. 27069  
>>27041
Повысили до сеньора, когда я освоил алгоритм, с которым до меня не справились два балбеса. Никаких в своем скилле я при этом не чувствую, видимо лучший путь к повышениям - чаще менять работу.
No. 27070  
Чиочан, а расскажи про static_cast, dynamic_cast и reinterpret_cast. Когда использовать, какие особенности, какие подводные камни.
No. 27071  
>>27070
static_cast - производится на этапе компиляции: работает на примитивных типах, при приведении дочернего типа к родительскому, либо если у класса определен метод вида "operator other_type() const". Самое простое и понятное - например int к bool, std::ifstream к bool, std::ifstream& к std::istream&.

dynamic_cast - попытка приведения ссылки или указателя родительского типа к выбранному дочернему. Выполняется в рантайме, срабатывает, если наш объект изначально создавался с дочерним типом. Если нет - вернет nullptr или кинет исключение. Необходимость в использовании бывает редко, сам видел только однажды.

reinterpret_cast - самое грубое. Просто интерпретирует байты одного типа как байты другого. Нередко так делают на указателях, на практике я так доставал чиселки из блоба бинарных данных - например у тебя есть куча байт в векторе "std::vector<unsigned char> data", и ты ты уверен, что байты с 100 по 103 кодируют число типа uint32 - тогда делаешь reinterpret_cast<uint32_t*>(&data[100]) (если уверен в порядке байтов)

Подводных камней есть, я сам мог о чем-то не вспомнить, а то и вспомнить неправильно - но уверен, что на https://en.cppreference.com/ должно быть достаточно подробно расписано.
No. 27072  
>>27071
Понятно, понятно.

Такой еще вопрос попался.
Была определена через дефайн константа. Решили, что это неправильно и ее заменили на static constexpr в private секции класса. Спрашивается, как сэкономить эти 4 байта в статической памяти и не хранить там вообще ничего, но чтобы константой можно было пользоваться? Это какие-то фокусы с using?
No. 27073  
>>27072
Ты хочешь алиас для литерала, но более адекватный чем макрос? У меня даже идей нет: using точно этого не умеет.

Всегда делал это через static constexpr, хотя иногда требовалось указывать static inline constexpr, если литерал строковый.
No. 27074  
>>27073
А нет, придумал. Нужно определить constexpr-функцию, возвращающую твоё число. Она будет вычислена на этапе компиляции, но храниться нигде не должна. Прикольно.
No. 27076  
>>27033
>Со сменой путей к данным там всё грустно, но можно раскидать разные варианты форматов по разным директориям, а ту, которая захардкодена у них в коде, делать ссылкой на одну из них.

Как показала практика, это была очень плохая идея. В результате merge гит попытался добавить новые файлы в директорию, обнаружил на месте нее симлинк, стал творить какую-то херню (я так и не понял, какую именно), получил переполнение renameLimit и выдал fatal error. На попытку откатить это через merge --abort он тоже выдавал fatal error. В итоге пришлось через git rm -rf удалить все проблемные директории, сделать коммит, а потом reset --hard. И только так удалось откатиться.

Вообще, это, похоже, часть более общей проблемы. Гит как я понял, не умеет отслеживать перемещение директорий. В результате может быть, например, такое:

1. В ветке master имеем директории foo и bar.
2. Создаем ветку slave, в ней переименовываем bar в baz, а foo в bar.
3. В ветке master добавляем в bar новые файлы.
4. В ветку slave сливаем последние изменения из master и получаем в директории bar левые файлы, которые должны быть в baz.

Если их там парочка, это еще можно поправить ручками… А представим, что у нас в проекте over 9000 директорий, в slave переименовали 3000 из них и у 500 названия совпали, а в master в каждую директорию добавили новых файлов десятка так два-три… inb4: такое и без новых файлов выдаст 100500 конфликтов слияния и сдохнет (Впрочем, суть проблемы, полагаю, ясна)

Сейчас пробовал гуглить, как с этим бороться — ничего путного не нашел. Зато нашел кучу заявлений в стиле отслеживать перемещение не нужно, этим страдают лишь пришедшие с svn нубы… Да уж, под svn такой фигни не было, это точно. При всех его недостатках, работа с директориями там была налажена на отлично…
No. 27077  
>>27076
>Сейчас пробовал гуглить, как с этим бороться — ничего путного не нашел.
UPD. Таки нашел.
Вот это: https://blog.palantir.com/renaming-and-deep-directory-hierarchies-in-git-f8e96d5e39a9?gi=ce6cdf83ec9f

Там и про глюки с переполнением renameLimit, и много чего еще. Пишут, что проблема, вроде бы решена в git-2.22.0. Правда не ясно, сработает ли это с репами, созданными в более старых версиях…
No. 27080  
>>27076
>Гит как я понял, не умеет отслеживать перемещение директорий
man git-mv

>стал творить какую-то херню
А что, по-вашему, он должен был начать делать?
No. 27081  
>>27076
>>27077
>В результате merge гит попытался добавить новые файлы в директорию, обнаружил на месте нее симлинк, стал творить какую-то херню (я так и не понял, какую именно)
Мог ты столкнуться с вот этим багом?
>Note that with Git 2.24 (Q4 2019), a bug in merge-recursive code that triggers when a branch with a symbolic link is merged with a branch that replaces it with a directory has been fixed.
https://stackoverflow.com/a/48483797
No. 27082  
>>27080
>>стал творить какую-то херню
>А что, по-вашему, он должен был начать делать?
Нормальная система контроля версий должна в подобной ситуации понять, что директорию переименовали, и при слиянии для новых файлов следует использовать новый путь.

И тот факт, что гиту, если верить ссылке из >>27077, потребовалось почти полтора десятка лет, чтобы этому хоть как-то научиться, вызывает некоторые вопросы…
No. 27098  
Чиочан, как начать учить Qt? Какие книжки и курсы посоветуешь? Хотелось бы именно онлайн курсы, а не книгу. Может, есть хороший плейлист на Ютубе с уроками?
No. 27100  
>>27098
>Как начать учить Qt?
>Может, есть хороший плейлист на Ютубе с уроками?
Коллеги из С++ нити >>/dev/17934 рекомендуют сборник материалов https://github.com/fffaraz/awesome-cpp

Этот сборник в свою очередь указывает на такие плейлисты по Qt:

>C++ Qt Programming by VoidRealms
https://www.youtube.com/playlist?list=PL2D1942A4688E9D63
Выглядит очень внушительно (200+ видео!), начинается с самих азов, и в том числе включает в себя превью онлайн-курса по Qt на Udemy.

>C++ GUI with Qt Playlist
https://www.youtube.com/playlist?list=PLD0D54219E5F2544D
Здесь изложение более краткое, "всего" 14 видео, что может быть лучше для восприятия.

Сообщай подходит тебе такое, или нет.
No. 27101  
>>27100
Спасибо, буду пробовать.
No. 27102  
>>27101
Сообщай потом о результатах.
No. 27104  
На чем можно написать свой имиджборд?
No. 27105  
>>27104
Интереснее, на каком языке имиджборд еще не писали.
No. 27106  
>>27105
Ну я вообще просто хочу написать свой имиджборд. На чем обычно это пишут? И выучить какой-нибудь яп для этого.
No. 27107  
>>27106
>На чем можно написать свой имиджборд?
>На чем обычно это пишут?
Классические движки имиджборд (начало нулевых) писались на Perl.
Следующее поколение движков (середина нулевых) писали уже на PHP.
Текущие энтузиасты (середина десятых и далее) пишут свои движки на Python и Node.js
No. 27108  
>>27107
Если у тебя задача "выучить язык" – просто пиши на любом, который хотел бы выучить.
И лучше, мне кажется, писать то, что решает какую-то твою проблему, для которой не подходят существующие продукты.
No. 27109  
>>27108
Знать бы какие у меня проблемы. А так языков, которые вызывают интерес много.
No. 27110  
>>27109
Хочешь рандомный язык - пиши на расте.
No. 27111  
Что лучше: сделать массив глобальным или сделать его статическим? Или сразу и то и другое? Имеет это смысл делать для увеличения быстродействия?
No. 27112  
>>27111
> Что лучше: сделать массив глобальным или сделать его статическим
Второе - чем меньше область видимости, тем меньше возможных проблем.
> Имеет это смысл делать для увеличения быстродействия?
Если многократно создаешь одни и те же данные - возможно. В общем же случае не стоит. Вообще, когда ты думаешь о быстродействии, лучше полагаться не на теорию, а на замеры - так ты поймешь, действительно ли это так работает и заметен ли эффект.
No. 27113  
>>27110
Вот раст не хочу. Выбор из PHP, Ruby, Visual Basic.
No. 27114  
faptcha.png - (1.26KB, 90×50)
27114
>>27113
> VB
Бери C#.
No. 27115  
>>27113
>Выбор из PHP, Ruby
Если движок писать как упражнение - Ruby
Если как готовое решение "на сейчас" - PHP
Удалить сообщение []
Пароль  
[Mod]