All streams
Search
Write a publication
Pull to refresh
8
0
Игорь @itmind

Fullstack

Send message

По моему мнению громоздкий синтаксис у C#, Java, Kotlin, C++

Пример синтаксиса на C# (на Java похоже)

[Anotation1]
[Anotation2(Enum.Param)]
public static void TryAddSingleton<TService, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TImplementation>(this IServiceCollection collection)
            where TService : class
            where TImplementation : class, TService
        {...}

У Kotlin плюс ко всему его DSL, когда вызов функции пишется как объявление функции (и получаются многоярусные вложения на несколько экранов)

val appModule = module {
    single<UserRepository> { UserRepositoryImpl().apply{  
                                this.param = MyClass.GetParam()
                                  }
                            }
}

А на Golang исходный код проще всего читать, он понятнее, синтаксические конструкции прощее. Минимализм конструкций языка позволяет после пары часов изучения уже писать достаточно качественное ПО.

В Kotlin же например только 5 scope function: let, run, with, apply, и also. И программист глубоко не знакомый с языком, читая код не поймет, что там происходит? не прочитав документацию.

Я наоборот не могу набрать вес. Ем целый день, но по подсчету калорий выходит всего максимум 1600-1700. Физически съесть больше не могу, так как и так почти передаю, и поменять на жирные продукты не могу, т.к. проблема с ЖКТ тогда будет. Пример меню (один прием пищи - 250-400 грам):

Завтрак: Овсяная каша, куриная грудка отварная с сыром, банан

Перекус: яблоко, банан

Обед: картофельное пюре, котлета куриная

Перекус: банан

Ужин: рис, котлета из свинины, салат из овощей

Практически не ем: мучное (булки,хлеб), сладости: сгущенку, торты, печенья и прочее.

Голода никогда нет, так как ем много. И очень хочу набрать вес, но получается медленно.

В тех же Java, Kotlin, C# нужно так же чуть ли ни каждую строчку оборачивать в try-catch

Вот пример для Kotlin:

import java.io.IOException
import java.nio.file.Files
import java.nio.file.Paths
 
fun main() {
    val fileName = "/home/data/file.txt"
    try {
        val lines = Files.readAllLines(Paths.get(fileName))
        println(lines)
    } catch (e: IOException) {
        e.printStackTrace()
    }
}

А то, что не обернуто в try-catch, нужно проверить на null. Пример:

companydb = getCustomer(name, inn);
if (companydb == null) {}

Получается в Go много "if err != nil", а в Java/C# много if ( p != null ).

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

И проверки на null после каждого вызова функций никого не смущает.

Мне тоже не нравится, что в Go код "замусоривается" проверками ошибок, но прочитав статью, понял, что и механизм исключений не лучше. Получается лучший вариант, это вариант описанный в разделе "Устранение обработки ошибок за счёт устранения ошибок"

В коде примера метод Hello объявлен на ресивере указателя Ben или Jerry. Если вместо этого объявить метод на значении Ben или Jerry, решит ли это проблему гонки данных?

Не решит, т.к. во первых проблема не в данных интерфейса, а в том, что тип и данные записываются разными операциями записи, между которыми может вклинится другая операция. И в самом интерфейсе всегда хранится ссылка на данные (uintptr). Не важно, что мы определили приемником значение, а не ссылку.

Или я не прав?

Итак, если пустая структура не содержит полей и не содержит данных, то зачем она нужна? 

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

И все? Зачем?

Конечно, есть вариант решить задачу «в лоб» — писать перегрузку на каждый тип данных, однако хотелось бы заставить компилятор помогать нам, не создавая 100500 методов.

Т.е. вместо 100500 методов вы предлагаете создать 100500 реализаций абстрактного класса? В чем профит?

private static int binarySearch(int[] sortedArray, int value, int low, int high) { ... }

Что за параметры low и high и зачем они в данном примере? Ведь в linearSearch нет таких параметров.

И вместо "Сортировка выбором" у вас функция linearSearch.

А как за сам ChatGPT платить?

Подскажите, как с токенов JaCarta скопировать?. Вариант с CertFix.exe не подходит

Очень спорное утверждение про Java/C#. Может для бизнес логики больше подходит 1с? Ведь именно в конфигурациях 1с работают сотни тысяч организаций по всей России.

Логика тех кто там работает.

Их не устраивали условия в России и они уехали в другую страну, не стали бороться за улучшение условий в России. Теперь для них история повторяется: их не устраивают условия работы в организации, следовательно они должны уйти в другую организацию.

192 ТК РФ. Когда выговоров и замечаний накопилось два или больше, работника можно уволить. Основание называется «за неоднократное неисполнение работником без уважительных причин трудовых обязанностей».

Зачем терпеть, не рабство же. Просто уходите на другую работу, если эта не устраивает.

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

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

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

Всё заставлено машинами, припарковаться очень сложно, т.к. нет мест. Во дворах парковок практически нет, на 25 этажный дом может быть парковка на 20 машин. Знаки не соответствуют движению по дороге. Например стоит знак что дальше прямо ехать нельзя, только направо. При этом все едут прямо, т.к. там продолжение дороги. Ехал по односторонней дороге вдоль Спортивной набережной и оказался на встречке, т.к. внезапно, без всяких знаков, дорога стала двусторонняя. Многие местные ездят так как будто сами не понимают как и куда ехать.

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

Почему в 9 главе в первый код выдает:

tick 2

tick 1

tick 1

tick 2

А второй код:

tick 1

tick 2

tick 1

tick 2

?

Казалось бы всегда должен быть второй вариант, т.к. tick 2 вызывается на несколько миллисекунд (наносекунд?) позже.

К сожалению SSD сейчас уже не спасает от тормознутости. Когда начался массовый переход на SSD, Windows грузился 1-3 секунды. Сейчас у меня один из свежих топовых ноутбуков на Windows 11 грузится секунд 30-40. (одно предустановленное ПО вендора пришлось даже удалить, т.к. оно давало задержку около 1 минуты до полной загрузки.)

Тоже не понял, этот инструмент деплоит сайты на python, php, go, java, asp.net или это только для js?

Идея отличная, но приложение на троечку.

Отзывчивость интерфейса плохая,долгие подгрузки при переходе между страницами. Мелкий текст и значки. Общий дизайн не нравится, не выглядит нативным для платформы. Все это следствие html интерфейса.

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

Information

Rating
6,243-rd
Location
Хабаровск, Хабаровский край, Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, 1C Developer
Lead
From 300,000 ₽
Rust
Golang
Kotlin Multiplatform
DevOps
Development management
Optimization of business processes