Задать вопрос
Пилю https://debtstracker.io/

Достижения

Все достижения (6)

Наибольший вклад в теги

Все теги (52)

Лучшие ответы пользователя

Все ответы (96)
  • В каком языке, в какой области программирования меньше текучки "знаний"?

    astec
    @astec
    Разработчик https://debtstracker.io/
    Говорят Fortran довольно стабильный.
    Ответ написан
    Комментировать
  • Как правильно оценить сколько ты стоишь на рынке труда(fron end || .NET)?

    astec
    @astec
    Разработчик https://debtstracker.io/
    Стоимость оценивается в момент продажи.

    Ваша текущая ЗП или самый большой действующий офер определяют вашу ценность на рынке труда.

    Кроме знаний есть ещё много параметров которые влияют на ЗП. Универсальную формулу вывести невозможно.
    Ответ написан
    Комментировать
  • Как победить OPTIONS при CORS?

    astec
    @astec
    Разработчик https://debtstracker.io/
    Только вчера разбирался для своего проекта по учёту долгов https://debtstracker.io/ и победил.

    На OPTIONS надо возвращать 200 с заголовками и пустой ответ.

    Я руководствовался этой схемой:
    cors_server_flowchart.png

    Вот мой работающий код на Go:

    func getOnly(handler HttpHandler) HttpHandler {
    	return func(w http.ResponseWriter, r *http.Request) {
    		c := appengine.NewContext(r)
    		if r.Method == "OPTIONS" {  // Preflight request
    			origin := r.Header.Get("Origin")
    			switch origin {
    			case "http://localhost:8080":
    			case "http://localhost:8100":
    			case "https://debtstracker.local":
    			case "https://debtstracker.io":
    			case "":
    				BadRequest(c, w, errors.New("Missing required request header: Origin"))
    				return
    			default:
    				err := errors.New(fmt.Sprintf("Unknown origin: %v", origin))
    				log.Debugf(c, err.Error())
    				BadRequest(c, w, err)
    				return
    			}
    			log.Debugf(c, "Request 'Origin' header: %v", origin)
    			if accessControlRequestMethod := r.Header.Get("Access-Control-Request-Method"); accessControlRequestMethod != "GET" {
    				BadRequest(c, w, errors.New("Not a valid preflight request"))
    				return
    			}
    			responseHeader := w.Header()
    			responseHeader.Set("Access-Control-Allow-Methods", "GET")
    			if accessControlRequestHeaders := r.Header.Get("Access-Control-Request-Headers"); accessControlRequestHeaders != "" {
    				log.Debugf(c, "Request Access-Control-Request-Headers: %v", accessControlRequestHeaders)
    				responseHeader.Set("Access-Control-Allow-Headers", accessControlRequestHeaders)
    			} else {
    				log.Debugf(c, "Request header 'Access-Control-Allow-Headers' is empty or missing")
    				// TODO(security): Is it wrong to return 200 in this case?
    			}
    			responseHeader.Set("Access-Control-Allow-Origin", origin)
    			w.WriteHeader(200)
    			return
    		}
    		if r.Method != "GET" {
    			BadRequest(c, w, errors.New(fmt.Sprintf("Expecting to get request method GET, got: %v", r.Method)))
    			return
    		}
    		handler(w, r)
    	}
    }
    Ответ написан
    1 комментарий
  • Как реализовать переключение языка в асинхронном python приложении (telegram bot)?

    astec
    @astec
    Разработчик https://debtstracker.io/
    В своём боте по учёту долгов https://t.me/DebtsTrackerRuBot я реализовал это следующим образом.

    Создал табличку TgChat в БД с ключём по chat_id и в ней есть поле lang:string. По умолчании там русский, но пользователь может в настройках поменять на английский или другой.

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

    В этой же табличке хранится текущее состояние чата так что грузить эту запись надо всё равно, соответсвенно накладных расходов ноль.
    Ответ написан
    Комментировать
  • Что учить Angular или React новичку?

    astec
    @astec
    Разработчик https://debtstracker.io/
    Учи второй ангуляр - он гораздо лучше первого, а первый умрёт скоро.

    И лучше не просто учи а сделай что нибудь небольшое. Чтобы было что показывать. Я вот начал делать https://debtstracker.io/ на Ангуляре 2 так столько всего пришлось выучить...
    Ответ написан
    5 комментариев

Лучшие вопросы пользователя

Все вопросы (1)