Coder Social home page Coder Social logo

middle.messenger.praktikum.yandex's People

Contributors

alexeia avatar

Watchers

 avatar

middle.messenger.praktikum.yandex's Issues

Предлагаю избавиться от проверки `method === 'GET'` в общей функции request и перенести эту логику в тело метода get, т.к. она не нужна для всех остальных методов

Предлагаю избавиться от проверки method === 'GET' в общей функции request и перенести эту логику в тело метода get, т.к. она не нужна для всех остальных методов

Originally posted by @dmitrymorozoff in #15 (comment)

Чтобы постоянно не писать `JSON.stringify`. Можно работу с веб сокетом обернуть в отдельный класс по аналогии с api. И там создать свойство метод send, который оборачивал бы объекты в `JSON.stringify`

Чтобы постоянно не писать JSON.stringify. Можно работу с веб сокетом обернуть в отдельный класс по аналогии с api. И там создать свойство метод send, который оборачивал бы объекты в JSON.stringify

Originally posted by @dmitrymorozoff in #15 (comment)

В больших продакшен проектах правильнее всего тесты запускать в CI.

С учетом того, что это учебный проект и тестов не очень много, запускать их перед каждым коммитом - это ок, но в больших продакшен проектах правильнее всего тесты запускать в CI. А в пре-коммит хук можно добавить проверку линтеров. Причем делать проверку линтеров всего проекта на каждый коммит, по сути, не имеет смысла, и можно использовать библиотеку lint-staged - она прогоняет через линтер только те файлы, которые были изменены.

Originally posted by @Andrushka36 in #29 (comment)

В чате, после обновления страницы, сообщения пропадают. Хорошо бы, чтобы они оставались.

Привет. В целом у тебя достаточно хорошая работа. Есть недоработки, но в целом все в порядке. Ход мыслей верный.

Единственное в чате, после обновления страницы, сообщения пропадают. Хорошо бы, чтобы они оставались.

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

По заданиям из ТЗ все в порядке. Работу приму. надеюсь ты поправишь вот эти небольшие недочеты к следующему спринту)

Originally posted by @dmitrymorozoff in #15 (review)

Когда меняешь данные в профиле, они меняются. Но подставляется в поле ввода паролей какой-то другой пароль, а нужно оставлять пароль пользователя.

Привет. В целом у тебя достаточно хорошая работа. Есть недоработки, но в целом все в порядке. Ход мыслей верный.

Единственное в чате, после обновления страницы, сообщения пропадают. Хорошо бы, чтобы они оставались.

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

По заданиям из ТЗ все в порядке. Работу приму. надеюсь ты поправишь вот эти небольшие недочеты к следующему спринту)

Originally posted by @dmitrymorozoff in #15 (review)

URL бекенда сообщений лучше перенести в `.env` к URL основного бекенда.

URL бекенда сообщений лучше перенести в .env к URL основного бекенда. Только я вот не очень понял, я вижу, что вы в классах, отвечающих за взаимодействие с бекендом, - RegisterApi, LoginApi и др - используете захардкоженные значения URL, а не из .env. Почему так?

Originally posted by @Andrushka36 in #29 (comment)

Лучше всегда употреблять оператор строго равенства, вместо сравнения с приведением типов. Результат строгого равенства легче предугадать

Лучше всегда употреблять оператор строго равенства, вместо сравнения с приведением типов. Результат строгого равенства легче предугадать

Originally posted by @dmitrymorozoff in #15 (comment)

Мутировать значение по ссылке, не очень хорошая практика. Лучше создать новый объект с новыми данными. Статья на эту тему https://habr.com/ru/company/ruvds/blog/346998/

Мутировать значение по ссылке, не очень хорошая практика. Лучше создать новый объект с новыми данными. Статья на эту тему https://habr.com/ru/company/ruvds/blog/346998/

Originally posted by @dmitrymorozoff in #15 (comment)

Чтобы везде не дублировать {credentials: true} набор базовых опций можно передавать при инициализации httpTransport, базовый урл тоже можно задать при инициализации

Чтобы везде не дублировать {credentials: true} набор базовых опций можно передавать при инициализации httpTransport, базовый урл тоже можно задать при инициализации

Originally posted by @dmitrymorozoff in #15 (comment)

У вас не проходят автотесты.

У вас не проходят автотесты. Сейчас ошибка связана с тем, что после установки зависимостей выполняется npm run start, то есть node server.js, при этом в проекте нет папки dist, в которую смотрит сервер. Правильнее будет в package.json start-скрипт задать как npm run prod && node server.js.

Регулярное выражение нужно записать в константу и дать ей понятное название, о том, что она делает. Чтобы проще было читать код.

Регулярное выражение нужно записать в константу и дать ей понятное название, о том, что она делает. Чтобы проще было читать код.

Тем более регулярное выражение дублируется в нескольких методах

Originally posted by @dmitrymorozoff in #15 (comment)

У вас в проекте достаточно много `ts-ignore`.

У вас в проекте достаточно много ts-ignore. Я бы посоветовал их использовать только в исключительных ситуациях и писать код так, чтобы он удовлетворял typescript. Например, здесь typescript пишет, что у вас не используется переменная req в коллбеке, и ведь вы ее действительно не используете. Поэтому здесь будет правильнее написать вот так:

rest.get(url, (_, res, ctx) => {
    return res(ctx.status(200), ctx.body('test get'));
}),

Originally posted by @Andrushka36 in #29 (comment)

Лучше задавать фиксированные версии зависимостям.

Лучше задавать фиксированные версии зависимостям.

Если вы однажды решите, удалить package-lock.json файл и попытаться повторно установить зависимости с помощью команды npm install, npm установит последние версии зависимостей, что может привести к ошибкам.

Плюс никогда не знаешь в какой версии появляется та или иная уязвимость, поэтому крайне рекомендую использовать статичную версию

Originally posted by @dmitrymorozoff in #5 (comment)

Вы выложили свой проект на Heroku?

Вы выложили свой проект на Heroku? Если нет, то это нужно сделать. Если да, то нужно добавить в README.md ссылку. Ну, и в Прочее у вас там некоторые артефакты с предыдущего спринта остались.

Лучше не обращаться к нативному тегу, а задать для него отдельный класс.

Лучше не обращаться к нативному тегу, а задать для него отдельный класс.

Например при изменении тэгов в шаблоне, в таком случае код будет продолжать работать, если в стили прописаны через имена классов)

Хорошая статься не эту тему.

Originally posted by @dmitrymorozoff in #5 (comment)

props лучше типизировать через [generics](https://www.typescriptlang.org/docs/handbook/2/generics.html), так будет возможность точно передать в базовый блок, тип пропсов наследников.

props лучше типизировать через generics, так будет возможность точно передать в базовый блок, тип пропсов наследников.

Получится, что-то такое:

abstract class Block<Props extends {}> {
    private element: HTMLElement;
    private tagName: string;

    protected props: Props;

    public constructor(tagName: string = 'div', propsAndChildren: Props) {
        this.tagName = tagName;
        this.props = propsAndChildren;
    }
}

type ButtonProps = {
    onClick: () => {};
};

class Button extends Block<ButtonProps> {
    public constructor(props: ButtonProps) {
        super('div', props);
    }

    public onClick() {
        this.props.onClick();
    }
}

Originally posted by @dmitrymorozoff in #5 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.