Продолжаю свою историю с тем челом которого я нанял для того чтобы он мне сайт блог сделал с редактором контента и мини админкой (чисто edit mode для создания страниц)
вроде был чел 11 лет опыта синьйор-помидор по словам, а по факту я начинаю сомневаться, похож на джуна-мидла, в профиле светится что работал и беком и фронтом и тимлидом
я сам мало что понимаю в вебе, но мне кажется что-то с кодом не так
Для начала он меня убедил что Svelte фреймворк это хорошая идея... Конечно же это УЖЕ вылезло боком, для редактирования контента выбрали tip-tap редактор который типа поддерживает Svelte, спойлер - поддерживает но никаких либ для нормального использования ТУПО НЕТ под Svelte, а под react и vue куча офк)))))))) в итоге чел не разобрался как делать bubble menu в этом редакторе на svelte (так как библиотеки для этого есть только на react/vue в этом типтапе), а я сказал пахую тот бабл, делай статичное меню сверху поебать
дальше, спрашиваю чела за дедлайны, говорю когда сдаш первый этап функциональности (у нас разбито на 4 этапа), он назвал дату, мы созвонились - не готово, потом еще неделю попросил, мы созвонились - не готово, и так
2 месяца ПЕРЕНОСОВ сроков первый этап так и не готов, сегодня еще один созвон)) ну я ему уже прямо сказал, мы с тобой не сможем продолжать работу если ты не можешь сделать работу по СВОИМ ЖЕ дедлайнам уже раз 7! Пиздос!
Потом он предлагал делать и начал делать Static Site Generation, ну я сначала ок, заебись бест перфоманс, спросил с SEO проблем же не будет? Он такой да не, все заебись будит! Но я решил побольше почитать про это и почему-то дохуя народу пишет что с Server Side Rendering намного лучше с SEO. Иду к нему говорю, чел, а вот смотри куча народу пишут что залупа... Он такой, да они просто лохи не умеют Static Site Generation готовить, а я умею! Ок думаю ладно... Через 4 созвона он говорит, что знаешь, походу и правда SSR делать надо, но это не связано с SEO, а типу ссылку когда вставлять будешь на свою статью в соцсетях то линк не подгрузится красиво.... А я сразу говорил что это для меня важно))))))))) Переделывает на SSR...
рассказал знакомому америкосу тимлиду, он сразу сказал это эпик фейл и этот проект с этим челом можно смело закрывать уже и вообще лучше возьми вордпрес и не еби мозг)) А я блять не хочу вордпрес)
потом решил открыть его код и попробовать хоть что-то понять (хотя я нихуя не шарю в ts/js/etc)
и чето мне показалось странным вот этот helper-time.js
const helperTime = {
formatDateToUtcForMysql: (date: Date):string => {
return date.toISOString().slice(0, 19).replace('T', ' ');
},
getYearInMs: (): number => 365.25 * 24 * 60 * 60 * 1000,
addMsToDate: (ms: number, date: Date): Date => {
date.setTime(date.getTime() + ms);
return date;
}
}
export default helperTime;
вот так он юзает дальше в route-user-login.ts...
import hyperExpress from 'hyper-express';
import helperResponse from '@src/helpers/helper-response.js';
import helperTime from '@src/helpers/helper-time.js';
import modelUser from '@src/models/model-user.js';
import modelSession from '@src/models/model-session.js';
export default async (request: hyperExpress.Request, response: hyperExpress.Response): Promise<any> => {
const requestData = await request.json();
const requestPassword = requestData?.password;
if (typeof requestPassword !== 'string')
return helperResponse.sendMessage(400, 'error', 'The "password" field is required', response);
const userGetResult = await modelUser.getByPassword(requestPassword);
if (typeof userGetResult === 'undefined')
return helperResponse.sendMessage(500, 'error', 'Internal server error', response);
if (Array.isArray(userGetResult) && !userGetResult.length)
return helperResponse.sendMessage(400, 'error', 'Incorrect password', response);
const userId = userGetResult[0]?.id;
const yearInMs = helperTime.getYearInMs();
const dateOneYearLater = helperTime.addMsToDate(yearInMs, new Date());
const dateOneYearLaterFormated = helperTime.formatDateToUtcForMysql(dateOneYearLater);
const sessionId = modelSession.generateId();
const sessionCreateResult = await modelSession.create(sessionId, userId, dateOneYearLaterFormated);
if (typeof sessionCreateResult === 'undefined' || !sessionCreateResult.affectedRows)
return helperResponse.sendMessage(500, 'error', 'Internal server error', response);
helperResponse.setCookieSessionId(sessionId, yearInMs, response);
return response
.status(200)
.json({
user: {is_admin: true},
message: {type: 'success', text: 'Logged in'}
});
}
это че за хуйня, разве в js/ts нету какого-то встроенного механизма для utc date??? спросил у чата гпт, он говорит все есть и скидывает пример ка кнадо было сделать
я чувствую себя ЛОХОМ ебаным)
челу заплачу в любом случае, но думаю надо менять и проект с 0 стартовать, пиздец конечно потеря времени и денег вникуда
а где гарантии что это тупо не повторится с другим
я ебу как же тяжело быть заказчиком, а это блять уровень проекта бложик с редактором контента... ниче супер навороченного или я не прав?
мне бы чела найти за бабки который был code-review сделал и вынес бы вердикт проекту жив или мертв, может я просто сгущаю краски, а это типичная реальность веба?))