Forwarded from Библиотека программиста
🛠 Всё, что нужно знать начинающему о Git: рассмотрим за 15 минут
Распределенная система контроля версий Git – популярный инструмент для координации параллельной работы и управления проектами в мире ИТ. Умение им пользоваться хотя бы на уровне основных команд необходимо даже начинающему разработчику.
🔗 Основной сайт
🔗 Зеркало
Распределенная система контроля версий Git – популярный инструмент для координации параллельной работы и управления проектами в мире ИТ. Умение им пользоваться хотя бы на уровне основных команд необходимо даже начинающему разработчику.
🔗 Основной сайт
🔗 Зеркало
Это всё конечно хорошо, шпаргалки там, и прочее. Но без знания работы инструмента, нельзя пользоваться им профессионально. А git это один из основных инструментов программиста. Нет ничего лучше, чем прочитать книжку про git, и самая лучшая книга, которая дала мне все азы, порекомендовал мне мой первый senior еще много лет назад:
https://www.kobzarev.com/wp-content/uploads/books/git/progit.ru.pdf
https://www.kobzarev.com/wp-content/uploads/books/git/progit.ru.pdf
На тему шпаргалок:
Можно распечатать этот листочек и повесить на стеночку, и с шансом 10% вы потратите на определение кодировки меньше минуты. И с шансом 1 из N количества вариаций кодировок (от cp8859-1 до cp8859-16, от win1250 до win1258 и тд.) вы вычислите нужную кодировку. А можно использовать обычные декодировщики (например этот меня выручал чаще чем остальные - https://2cyr.com/decode/?lang=ru).
Так же и со шпаргалками по языкам, инструментам. Если не знаете инструмент, который описывает шпаргалка, хотябы на среднем уровне, то и изучить инструмент шпаргалка не поможет. А если инструмент изучен достаточно, чтобы не искать в гугле каждую вторую команду, то шпаргалка не нужна, потому что повседневные вещи, которые в ней описаны, вы и так делаете с закрытыми глазами, а что-то специфическое очень вероятно, что в шпаргалке не описано, и всёравно придется лезть в документацию, в
Можно распечатать этот листочек и повесить на стеночку, и с шансом 10% вы потратите на определение кодировки меньше минуты. И с шансом 1 из N количества вариаций кодировок (от cp8859-1 до cp8859-16, от win1250 до win1258 и тд.) вы вычислите нужную кодировку. А можно использовать обычные декодировщики (например этот меня выручал чаще чем остальные - https://2cyr.com/decode/?lang=ru).
Так же и со шпаргалками по языкам, инструментам. Если не знаете инструмент, который описывает шпаргалка, хотябы на среднем уровне, то и изучить инструмент шпаргалка не поможет. А если инструмент изучен достаточно, чтобы не искать в гугле каждую вторую команду, то шпаргалка не нужна, потому что повседневные вещи, которые в ней описаны, вы и так делаете с закрытыми глазами, а что-то специфическое очень вероятно, что в шпаргалке не описано, и всёравно придется лезть в документацию, в
--help или гугл.Единственная причина того, что легаси никто не рефачит - разрабам лень переписывать тесты. #fun_minute
😁1
#csharp #protip
## Почему нужно использовать
Всё очень просто: оператор
Пример:
* Объявим класс, который переопределяет операторы сравнения, и возвращает истину, когда существующий объект сравнивают с
* А теперь сравним существующий объект с
* Вывод консоли:
Бинго!
## Почему нужно использовать
is null, вместо == nullВсё очень просто: оператор
== можно перезаписать, а is - не оператор, и компилируется отличным от операторов способом.Пример:
* Объявим класс, который переопределяет операторы сравнения, и возвращает истину, когда существующий объект сравнивают с
null и код вернет истину, как будто наш объект равен nullclass SomeObject
{
public static bool operator ==(SomeObject left, object right)
{
if (right is null)
{
return true;
}
return false;
}
public static bool operator !=(SomeObject left, object right)
{
if (right is null)
{
return false;
}
return true;
}
}
* А теперь сравним существующий объект с
null, с помощью оператора == и с помощью ключевого слова isstatic void Main(string[] args)
{
var isNullOperator = new SomeObject() == null;
var isNullIs = new SomeObject() is null;
Console.WriteLine($"Вывод через == : {isNullOperator}");
Console.WriteLine($"Вывод через is : {isNullIs}");
}
* Вывод консоли:
Вывод через == : True
Вывод через is : False
Бинго!
#tools
Редактор OpenApi, который превращается в привычный swagger.
Очень удобная штука для проработки контрактов.
https://editor.swagger.io/
Редактор OpenApi, который превращается в привычный swagger.
Очень удобная штука для проработки контрактов.
https://editor.swagger.io/
Если вы хотите получить доступ к новому Bing с ChatGPT из России, вот как это сделать:
Если вы получаете сообщение “Sorry, looks like your network settings are preventing access to this feature.”, то выполните следующие действия:
Тэги: #ai #neural_networks #instructions
Please open Telegram to view this post
VIEW IN TELEGRAM
Microsoft
Microsoft account | Sign In or Create Your Account Today – Microsoft
Sign In with your Microsoft account. One account. One place to manage it all. Welcome to your account dashboard.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Интерактивное обучение git branching с визуализацией. Поможет разобраться в невидимых механизмах git, для тех, кто запоминает через визуализацию.
Покроет 99% возможных сценариев во время работы.
https://learngitbranching.js.org/?locale=ru_RU
Покроет 99% возможных сценариев во время работы.
https://learngitbranching.js.org/?locale=ru_RU
Sql advanced query. Выбрать все foreign keys которые ссылаются на таблицу:
#protip #sql
SELECT
OBJECT_NAME(f.parent_object_id) TableName,
COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName
FROM
sys.foreign_keys AS f
INNER JOIN
sys.foreign_key_columns AS fc
ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN
sys.tables t
ON t.OBJECT_ID = fc.referenced_object_id
WHERE
OBJECT_NAME (f.referenced_object_id) = 'YourTableName'
#protip #sql
🔥1
# Подгрузка переменных среды из .env файла при npm run
⚫️
⚫️
⚫️ Вторую комманду можно добавить в секцию packaje.json
И использовать при запуске через
$ npm install --save-dev env-cmdГде:
$ env-cmd -f ./.env.dev npm start --watch
--save-dev - зависимость, которая не будет восстановлена при использовании текущего модуля другим приложением../.env.dev - путь до .env файла {
"scripts": {
"start:debug": "env-cmd -f ./.env.dev npm start --watch"
}
}И использовать при запуске через
$ npm run start:debug
#npm #nodejs #env #variables #protipPlease open Telegram to view this post
VIEW IN TELEGRAM
# Отловить Ctrl+C в консоли
Отлов события "отмены" в консольном приложении, и завершить все задачи, в которые проброшен CancellationToken
Отлов события "отмены" в консольном приложении, и завершить все задачи, в которые проброшен CancellationToken
var factory = new CancellationTokenSource();#protip #dotnet #net #netcore #csharp #concole #cancel
var cancellationToken = factory.Token;
Console.CancelKeyPress += delegate { factory.Cancel(); };
// ...
Леонид Павлов. "It specialist's tricks"
Sql advanced query. Выбрать все foreign keys которые ссылаются на таблицу: SELECT OBJECT_NAME(f.parent_object_id) TableName, COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns…
Sql advanced query. Выбрать все foreign keys в схеме. Теперь для postgresql:
#protip #postgres #pgsql #sql #foreign_key
SELECT conrelid::regclass AS table_from
, conname
, pg_get_constraintdef(oid)
FROM pg_constraint
WHERE contype IN ('f', 'p ')
AND connamespace = 'public'::regnamespace -- your schema here
ORDER BY conrelid::regclass::text, contype DESC;
#protip #postgres #pgsql #sql #foreign_key
# Автогенерация версии через Git
В Git есть встроенная команда, которая берет ближайший тэг, отсчитывает кол-во коммитов с тех пор, и прибавляет sha1 текущего коммита.
итого, результат выполнения команды, на последнем коммите с sha1=foobar123, если ближайший tag был 15 коммитов назад, а название тэга было "v1.2.0"
#protip #git #release #versioning
В Git есть встроенная команда, которая берет ближайший тэг, отсчитывает кол-во коммитов с тех пор, и прибавляет sha1 текущего коммита.
итого, результат выполнения команды, на последнем коммите с sha1=foobar123, если ближайший tag был 15 коммитов назад, а название тэга было "v1.2.0"
$ git describe master
v1.2.0-15-foobar123
#protip #git #release #versioning