인터넷 배경이 있는 새로운 두더지가 되는 것에 대한 생각
면책 성명
초보 두더지.내가 관찰한 대부분은 아마도 정확한 반일 것이다.나는 연말에 옛일을 돌아보고 고개를 저을 수도 있지만, 나는 반드시 어딘가에서 여정을 시작해야 한다. 그렇지?😁
나의 배경
나는 주로dotnet 세계에서 나의 개발 기술을 배웠다.SQL Server 성능, 모델 및 개발을 시작으로 PowerShell 및 C# 학습을 시작했습니다.나는 내가 하는 대부분의'DevOps'성격이 C#에 집중하기에 적합하지 않다는 것을 발견했기 때문에 나는 PowerShell에서 대부분의 개발을 완성했다.
PowerShell과 비슷하지 않은 사람들에게, 나는 그것을 기묘한 셸 체험과 자동화 프로그래밍을 위한 좋은 생태계로 강력히 추천한다.
PowerShell에서 모든 것은 하나의'대상'이다. 이러한 대상의 조작은 왕왕 매우 유연할 뿐만 아니라 내장된 방법, 속성, 그리고 대상 집합 중의 대상 집합을 깊이 파헤쳐 AWS 같은 것을 사용하는 데 강력한 통제를 제공한다.공구.SDK 및 Windows
왜 내가 바둑부터
나는 파이톤에 중점을 두고 싶다. 왜냐하면 나는 그것이 아름다운 언어라고 생각하기 때문이다. 그리고 나는 곧 효율을 높일 수 있기 때문이다.그러나 내가 파이톤의 여행을 시작했을 때, 나는 기본적으로 많은 면에서 매우 비슷한 언어로 PowerShell (나의 goto) 을 대체하고 있다는 것을 발견했다.
파이톤은 다양한 분야에서 많은 일을 할 수 있고 많은 사용자가 구축한 모듈 생태계를 가진'접착'언어를 제공한다.
그런데 왜 가요?
나의 다음 단계는 주로 두 가지 일을 하고 싶다.
이것 괜찮아요?
아니오, PowerShell, C#, Python, 심지어 Bash보다 더 좋지는 않습니다.
이것은 나사못보다 망치가 더 좋거나 톱질에 대한 수요를 대체하는 불완전한 방식이다.😁
그것은 어떻게 내가 다른 방식으로 사고하는 것을 도왔는가
내가 관찰한 것은 그것이 나의 주요 목표 중 하나인 다른 방식으로 사고하고 있다는 것이다.
이음매
인터페이스는 C#를 많이 만들지 않았기 때문에 내가 거의 사용하지 않는 것이다. 그러나 내가 그것을 사용할 때, 인터페이스는 훌륭한 디자인과 추상적인 실현을 위한 추가 작업인 것 같다.나의 대부분의 개발은 자동화를 위한 것이기 때문에, 나는 그것들을 자주 사용할 이유가 거의 없다.
바이트
바이트는 PowerShell에서 추상적으로 만들어졌기 때문에 내가 거의 사용하지 않는 것이다.그러나 Go에서 바이트는 일반적인 매개체인 것 같다.
만약 내가 json의 일부 결과를 수집하고 조작하기 위해 웹 요청을 실행해야 한다고 가정한다면.PowerShell을 사용하면
ConvertFrom-Json
간단한 rest 호출만 사용할 수 있습니다.Go를 사용하면 바이트를 변환하고 json.Unmarshal
를 일종의 방식으로 응답을 얻으며 미리 정의된 구조에 응답을 넣어야 합니다. (빈 구조도 사용할 수 있다고 생각합니다.)그림, 파일, 네트워크 요청 등... 바이트를 처리하려고 합니다.무한한 바이트 흐름.
네트워크 유형
예를 들어, 나는 semver 버전 번호를 사용하고 싶다.이는 C#의 표준 시스템 라이브러리에서 사용할 수 있으며 PowerShell의 유형 가속기를 통해서도 액세스할 수 있습니다.
$ver = [System.Version]::new()
[System.Version]::TryParse($ParseMe,[ref]$ver) # Returned bool success/fail
Write-Host $ParseMe
Go에서 이것은 표준 라이브러리의 일부분이 아니다. (적어도 나의 발견으로 볼 때)반대로 비슷한 go-version 가방을 찾아서 사용하면 같은 기본 기능을 얻을 수 있습니다.PowerShell을 사용하여 반환되는 클래스 객체와 달리 구조를 반환해야 합니다.
그중
[pscustomobject]@{}| Get-Member
에서 보고할 것이다.NET 유형System.Management.Automation.PSCustomObject
, go에 대해 반사를 실행합니다.부터go-version
// Version represents a single version.
type Version struct {
metadata string
pre string
segments []int64
si int
original string
}
이것은 기본적으로 내가 바둑에서 보고 싶은 새로운 유형이다.마지막 생각
나는 새로운 각도에서 사물을 바라보는 경험을 정말 즐긴다. 그리고 내가 할 수 있는 대로 개방적인 심리 상태를 유지하고 편견 없이 그것을 나에게 강요하는 사고방식을 배운다.
지금까지는 재미있었고 처음에는 더 어려웠을 것이다. 왜냐하면 나의 범례는dotnet 생태계에서 왔기 때문이다.dotnet을 등식에서 빼라. 나는 내가 얼마나 당연하다고 생각하는지 재미있게 보았다.
내가 처음부터 파이톤에 빠져 있었다면 고로 전환하는 게 더 직관적이었을 거라고 생각한다.내가 C#과 PowerShell을 처리할 때, 나는 그것이 매우 직관적이라는 것을 발견했다. 대부분의 기초는 문법 차이일 뿐이고, 예를 들어 Linq/의뢰, 추상 클래스, 인터페이스, 그리고 PowerShell 세계에서 그다지 중요하지 않은 것들을 추가할 때까지.
Windows에서'모든 것은 대상'의 범위화와 Linux에서'모든 것은 파일/텍스트'의 범위화는 내가 관찰한 언어 운행 방식을 토대로 옳다고 생각한다.
새로운 것을 시도하다
만약 리눅스 배경이 있다면, 나는 네가 PowerShell (지금은 플랫폼을 뛰어넘는 것) 을 시도해 보고, 새로운 범례를 배우는 체험을 해 보라고 건의한다.
InvokeBuild
파일보다 Make
같은 파일을 사용하면 더욱 풍부한 경험을 얻을 수 있습니다.Windows의 경우 Python이나 Go가 도전을 돕는 최선의 선택이 될 것입니다.자기한테 시간을 주고 엉망으로 했어요.
나는 최근에 @Duffney에서 다음과 같이 읽었다.
My biggest challenge with using the 20 hours rule to learn new things is becoming comfortable being “unproductive”
나는 이 문제를 해결하기 위해 노력해 왔기 때문에 이것은 매우 자유로운 개념이라고 생각한다.PowerShell에 대한 경험이 풍부하고 비관용적인 Go 코드를 작성할 수 있으며 대략적인 프로젝트 구조, 유한한 테스트 등이 있어 정신적 압박감을 느낀다.
어떤 일에서 동력을 얻는 것은 항상 좋다. 일단 능력이 증가하면 자신에게 도전하고 더욱 자동화되고 테스트를 거쳐 좋은 해결 방안을 설계하여 자신을 초월한다.어떤 물건들을 건조하고 운송하면, 너는 심지어 낡은 일에 대해 위축된 곳에 도착할 수 있다😆
Reference
이 문제에 관하여(인터넷 배경이 있는 새로운 두더지가 되는 것에 대한 생각), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sheldonhull/reflections-on-being-a-new-gopher-with-a-dotnet-background-20m9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)