Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Флейм > Написал чат


Автор: iv888 13.3.2019, 22:53
Написал веб-чат.
Функционал:
Многоканальный.
Можно создавать новые каналы, зная пароль (а можно не создавать, их и так много).
Подгружает только новые сообщения.
При открытии грузит последние 15 сообщений.
Проверка сообщений раз в 3 секунды, без перезагрузки страницы.
Отправка сообщений по нажатию enter.
Показывает в чате картинки, если дать прямую ссылку.
Преобразует ссылки.
Скролл сбрасывается вниз только если приходит новое сообщение.

Уникальный способ оформления текста, пишем к примеру:
b-> Какой-то текст
и этот текст преобразуется в 
b-> Какой-то текст
или i-> или еще чего. 

Тоже самое с цветом.
color->blue-> Какой-то текст. Преобразуется в 
color->blue-> Какой-то текст. 

Есть система приватных  сообщений, которые можно перехватить, зная ник  smile . 

Работает так пишем в чате:
alert->nickname-> Какой-то текст
И человек с ником  nickname получает окошко с alert,
а в чате у него ничего не выводится. Фактически сообщение для него приватное. Остальные в чате видят
alert->nickname-> то самое сообщение...  и тихо хихикают (это, конечно прикол, выпилю потом)
 
Задействовал:
PHP 7 OOP. (Сикьюэль-инжекшн фулл фикс)
Mysqli (Prepared statemens). Постоянное соединение. 
MVC (почти, чуток по-своему именовал части структуры).
Ajax (xmlhttp)
Json.
Подгрузка новых сообщений без переменных в cookies. Использовал window.var
Единая точка входа. 

Вот и все пока. 
Тестовая версия:
original.combat.org.ru/chat/
исход. коды:
github.com/dcc0/Openhat_Multichannel_Final

Автор: ksnk 14.3.2019, 11:23
Цитата(iv888 @  13.3.2019,  22:53 Найти цитируемый пост)
Подгрузка новых сообщений без переменных в cookies.

Не в localStore, а прямо в куки? Есть ограничение на размер кук - 4к, вроде...

Добавлено через 9 минут и 33 секунды
class_send.php
Код

<?php
require_once __DIR__ . '../../conf/class_config.php';
require_once './view/class_list_of_channels.php';
//Проверим, что данные о канале пришли 
...

Есть такая штука - автоматическая загрузка классов. http://php.net/manual/ru/function.spl-autoload-register.php
она позволяет отказаться от инклюдов. Есть разные мнения - это эффективнее или нет, но include добавляет дополнительную зависимость в класс, а это не очень хорошо.

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

Автор: iv888 14.3.2019, 12:35
Цитата(ksnk @  14.3.2019,  11:23 Найти цитируемый пост)
php

Благодарю. Про автолад не знал и не задумывался.
Попытаю осилить. 

Автор: iv888 14.3.2019, 12:58
Цитата

Не в localStore, а прямо в куки? Есть ограничение на размер кук - 4к, вроде...

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

Автор: _zorn_ 17.3.2019, 20:58
Цитата(ksnk @  14.3.2019,  18:23 Найти цитируемый пост)
Есть ограничение на размер кук.

Есть, но никто их точно не знает ) В IE помнится было совсем маленькое )

ТС - ты не представляешь сколько чатов пишут )
https://github.com/zorn-v/v13chat
Правда и это уже древность  smile 

Но "начало положено"  smile 

Автор: iv888 17.3.2019, 23:07
_zorn_, у меня мультиканальность есть. И нет jQuery

Автор: _zorn_ 28.3.2019, 19:39
Цитата(iv888 @  18.3.2019,  06:07 Найти цитируемый пост)
И нет jQuery

Это типа модно сейчас ? ) 
Что ЛИЧНО ТЫ можешь сказать про отсутсвие жквери кроме хайпа ?

Добавлено @ 19:42
Я и на vue могу и что ?

Добавлено @ 19:45
PS:  react - гамняшки

Добавлено @ 19:51
Посыл не в том (хоть и зацепил). Просто этих чатов уже наделали до тебя (и даже не я)  smile 

Автор: iv888 4.4.2019, 15:34
Цитата

Это типа модно сейчас ? ) 

Оценивая субъективно, - да. 
Скорее, интересно, а не модно, вернее, даже интереснЕЕ.

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

А если с чистого листа,  сильно не подглядывая (а я именно так писал), то оригинальная нотка будет. Хотя кто-нибудь обругает за отступление от стандартов. Так и вышло у  меня. Сейчас вроде переделал, соблюдая PSR (жил-жил и не знал об этих стандартах).

Ну и не совсем MVC у меня. скорее Model, View Linker.  

У меня многоканальность более очевидным образом реализована, чем у других (субъективно).  smile  

Автор: Zloxa 13.4.2019, 18:33
Цитата(iv888 @  4.4.2019,  16:34 Найти цитируемый пост)
оригинальная нотка

Это плохо.
Программирование - не искусство, а инженерия.

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

Автор: ksnk 14.4.2019, 12:12
Цитата(Zloxa @  13.4.2019,  18:33 Найти цитируемый пост)
Инженерный продукт должен быть рациональным, решать задачу, и опечаток автора совершенно здесь не уместен.

Знак производителя, это отпечаток автора?  smile  


Автор: _zorn_ 25.4.2019, 16:20
Цитата(Zloxa @  14.4.2019,  01:33 Найти цитируемый пост)

Это плохо.

Что, даже пасхалки уже нельзя   smile 

Автор: Zloxa 27.4.2019, 17:53
Цитата(_zorn_ @  25.4.2019,  17:20 Найти цитируемый пост)
нельзя 

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

Автор: _zorn_ 28.4.2019, 10:54
Нет истинной задачи, кроме как поставленной ? 
Так проще, согласен. А поспорить ?  smile 

Автор: Zloxa 30.4.2019, 19:41
Цитата(_zorn_ @  28.4.2019,  11:54 Найти цитируемый пост)
 А поспорить ? 

Споры для дураков. (ну, в смысле, что один знает и спорит, а другой не знает и спорит).
Цитата(_zorn_ @  28.4.2019,  11:54 Найти цитируемый пост)
Нет истинной задачи, кроме как поставленной ? 

Говорю ж - не искусство, а инженерия. Не самовыражение, а решение задач.
Где тут простор для дискуссии? smile

Автор: irinazanuda 4.5.2019, 18:32
Пошто мальчика обидели?!.. Вин старался, хотел похвастаться...нет же, зубры с надменными всезнающими лицами положили на лопатки

Автор: MimmiOk1987 24.5.2019, 18:15
И где Ваш чат можно найти??? Или вы для себя писали, без коммерческого уклона?)))
https://vk.com/parka_shophttp://tradimm.ru/https://aleba.ru/https://tesorogold.ru/http://ekolmil.ru/https://yandex.ru/https://www.google.ru/

Автор: _zorn_ 3.8.2019, 08:40
Цитата(Zloxa @  1.5.2019,  02:41 Найти цитируемый пост)
Где тут простор для дискуссии? 


Какой технологией задача решится быстрее и эфективнее ?

Есть задача разработать  API для создания и возвращения списка сущностей. Что берем, GraphQL или обычный REST ?
В чем хранить сущности, RDBMS или NoSQL ?

Discuss  smile 

Автор: LSD 5.8.2019, 12:11
Цитата(_zorn_ @  3.8.2019,  09:40 Найти цитируемый пост)
Какой технологией задача решится быстрее и эфективнее ?

Той которую хорошо знаешь. 
                                               К.О.

Автор: Zloxa 16.8.2019, 17:41
Цитата(_zorn_ @  3.8.2019,  09:40 Найти цитируемый пост)
Какой технологией задача решится быстрее и эфективнее ?

Чем вы мерите эффективность?
Допустим, у вас есть штат персонала, который может запилить и (главное) поддержать REST+RDBMS, но, использование GraphQL+NoSQL для конкретной задачи - то, что доктор прописал.
Что станете делать? Пилить существующим ресурсом, или расширите штат, арендуете новые площади под коворкинги, закупите парк гироскутеров?

Автор: BlackRu 30.11.2024, 20:02
Цитата(MimmiOk1987 @ 24.5.2019,  18:15)
И где Ваш чат можно найти??? Или вы для себя писали, без коммерческого уклона?)))
https://vk.com/parka_shophttp://tradimm.ru/https://aleba.ru/https://tesorogold.ru/http://ekolmil.ru/https://yandex.ru/https://www.google.ru/

Доброго!
Наверное, нигде не используется. 
Вот здесь можно потестировать: http://i92625up.beget.tech/chat/index.php
Здесь скачать: https://gitflic.ru/project/dcc0/open
Лицензию поставил GPL

P.S.Не смог вспомнить пароль от iv888
От этого аккаунта тоже случайно вспомнил. Соррри

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)