Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby
  • C 프로그래밍
  •   
  • C++
  •   
  • Redis
  •   
  • BASH 프로그래밍
  •   
  • Python
  •   
  • Java
  •   
  • 데이터 베이스
  •   
  • HTML
  •   
  • JavaScript
  •   
  • 프로그램 작성
  •   
  • CSS
  •   
  • Ruby
  •   
  • SQL
  •   
  • IOS
  •   
  • Android
  •   
  • MongoDB
  •   
  • MySQL
  •   
  • C#
  •   
  • PHP
  •   
  • SQL Server
  • Ruby

    1. 즉석에서 Ruby 열거자 만들기

      컬렉션을 열거자로 취급하면 추가 코드를 작성할 필요 없이 #map 및 #reduce와 같은 모든 즐겨찾는 기능을 사용할 수 있습니다. 정말 멋지네요. 옛날에는 열거자를 정의하는 것이 약간 번거로웠습니다. 새 클래스를 만들고 Enumerable 모듈을 포함하고 #each 함수를 정의해야 했습니다. 하지만 Ruby 1.9 이후로 열거자를 즉석에서 정의하는 훨씬 더 가벼운 방법이 있습니다. 살펴보겠습니다. 열거자 클래스 소개 Enumerator 클래스를 사용하면 블록 구문을 사용하여 일회용 열거자를 정의할 수 있습니다. 아래 예에서

    2. 터보링크를 위한 단일 페이지 앱을 버리시겠습니까?

      Turbolinks - 아마도 Rails 세계에서 가장 경멸받는 단어 중 하나일 것입니다. 시도해 보셨을 수도 있습니다. 새 프로젝트 또는 기존 앱에 터보링크를 포함했습니다. 그리고 얼마 지나지 않아 앱이 이상하고 놀라운 방식으로 실패하기 시작했습니다. 수정도 간단해서 다행입니다. 터보링크를 끄십시오. ...하지만 일부 회사에서는 작동합니다. 여기 Honeybadge에서 우리는 그것을 작동시켰습니다. 그리고 우리는 천재가 아닙니다. 대답은 너무 간단해서 거의 꺼내기가 꺼려집니다. 그러나 Ruby Nation 및 Madison+

    3. Jekyll의 H2에서 자동으로 하위 탐색 생성

      저는 Jekyll을 사용하여 문서 사이트를 재구축했습니다. 문서 페이지가 꽤 크기 때문에 최상위 탐색 외에도 일종의 하위 탐색이 필요합니다. 이 게시물에서는 게시물 또는 페이지의 제목에서 하위 탐색 링크를 생성할 수 있는 간단한 Jekyll 플러그인을 만드는 방법을 다룹니다. 개요 이 프로젝트를 다음 작업으로 분류했습니다. 사이트의 모든 페이지에 대해 실행되는 Jekyll 생성기를 만듭니다. 제너레이터가 제목 정보를 추출할 수 있도록 페이지를 미리 렌더링하는 방법을 알려줍니다. nokogiri를 사용하여 페이지 HTML을 구문

    4. Jekyll을 사용한 여러 수준의 하위 탐색

      이전 게시물에서 Jekyll 페이지의 각 H2에 대한 하위 탐색 링크를 생성하는 방법을 보여 드렸습니다. 이 게시물에서는 그 기반을 구축하고 H3, H4 등을 기반으로 임의 수준의 하위 탐색을 추가하는 방법을 보여줍니다. 개요 이 프로젝트를 몇 단계로 나누었습니다. 먼저 nokogiri를 사용하여 H2 태그의 내부에 H3 태그로 정의된 섹션을 가져옵니다. 다음으로, 임의의 수준의 하위 탐색을 렌더링하는 멋진 트릭을 사용하겠습니다. 재귀 템플릿을 만들 것입니다. 시작하기 전에 한 가지 분명히 합시다. H3 태그가 H2 내부에

    5. Ruby 정제 및 어휘 범위 이해

      이전에 미세 조정을 사용한 적이 없다면 아마 놀랄 것입니다. 원숭이 패치를 대체하기 위해 개선 사항이 도입되었다는 소식을 들었을 것입니다. 따라서 ActiveSupport의 hours 방법: module TimeExtension refine Fixnum do def hours self * 60 end end end class MyFramework using TimeExtension end class MyApp < MyFramework def index 1.hours end

    6. 루비 정제 벤치마킹

      뒷이야기를 모른 채 Google에서 Ruby 개선을 검색하면 개선이 느리다는 생각이 들 수 있습니다. 원래 제안된 대로 개선이 느렸을 것입니다. 그들은 인터프리터가 메소드 조회와 같은 것들을 최적화하는 것을 불가능하게 만들었을 것입니다. 그러나 개선 사항의 실제 구현은 원래 제안보다 약간 더 제한적입니다. 그래서 나는 오늘날 Ruby에 있는 것처럼 개선에 대한 일련의 벤치마크를 실행하는 것이 흥미로울 것이라고 생각했습니다. TL;DR 수정은 느리지 않습니다. 또는 적어도 정상적인 방법보다 느리지 않은 것 같습니다. 더미 로드

    7. Ruby 정규 표현식 내에서 조건부 사용

      Ruby 2.0이 2013년에 출시한 많은 새로운 기능 중에서 제가 가장 주목하지 않은 것은 새로운 정규식 엔진인 Onigmo였습니다. 결국 정규식은 정규식입니다. Ruby에서 정규식을 구현하는 방법에 신경을 써야 하는 이유는 무엇입니까? 알고 보니 Onigmo 정규식 엔진에는 정규 표현식 내부에 조건문을 사용하는 기능을 포함하여 몇 가지 깔끔한 트릭이 있습니다. 이 게시물에서 우리는 정규식 조건문에 대해 알아보고, Ruby 구현의 단점에 대해 배우고, Ruby의 한계를 해결하기 위한 몇 가지 트릭에 대해 논의할 것입니다. 시작

    8. 멋진 루비 정규식 트릭

      나는 루비에서 정규 표현식으로 할 수 있는 다른 멋진 트릭을 보고 정규 표현식 조건에 대한 어제 기사를 따라가는 것이 재미있을 것이라고 생각했습니다. 정규 표현식을 통한 문자열 분할 텍스트 구분 기호를 사용하여 문자열을 분할하는 방법은 매우 익숙할 것입니다. one,two.split(,) # => [one, two] 그러나 split도 정규식을 허용한다는 것을 알고 계셨습니까? # use `,` and `-` as delimiters one,two-three.split(/,|-/) => [one, two, thre

    9. Ruby에서 `self` 이해하기

      오늘은 self에 대해 이야기해보려고 합니다. . Ruby를 한동안 프로그래밍했다면 self라는 개념을 내면화했을 것입니다. . 프로그램을 읽거나 작성할 때마다 self 당신의 마음 뒤에 있습니다. 그러나 경험이 부족한 Rubyists의 경우 self 당황할 수 있습니다. 항상 변경되지만 코드에 명시적으로 표시되지는 않습니다. 당신은 단지 알 것으로 예상됩니다. 초보자가 직면하는 많은 문제는 self를 이해하지 못해서 발생합니다. . 인스턴스 변수를 잃어버린 적이 있거나 믹스인에 표시되는 데이터에 대해 의아해한 적이 있다면

    10. Ruby가 프로그램을 해석하고 실행하는 방법

      도구에 대해 더 많이 알수록 개발자로서 더 나은 결정을 내릴 수 있습니다. Ruby가 프로그램을 실행할 때 실제로 수행하는 작업을 이해하는 것은 특히 성능 문제를 디버깅할 때 종종 유용합니다. 이 포스트에서 우리는 바이트코드로 렉싱되고, 파싱되고, 컴파일되는 간단한 프로그램의 여정을 따를 것입니다. 우리는 Ruby가 제공하는 도구를 사용하여 모든 단계에서 인터프리터를 감시할 것입니다. 걱정하지 마십시오. 전문가가 아니더라도 이 게시물은 따라하기가 매우 쉽습니다. 기술 설명서라기보다 가이드 둘러보기에 가깝습니다. 샘플 프로그램을

    11. Ruby에서 splats를 사용하여 배열 구축 및 분리

      내가 Ruby를 좋아하는 이유 중 하나는 기능의 깊이입니다. 연산자를 사용할 수는 있지만 조금만 파고들어보면 연산자가 할 수 있는 것의 표면만 긁고 있다는 것을 알게 될 것입니다. 겸손한 표시 연산자(* 및 ** )가 좋은 예입니다. catch-all 인수에 대해 splats를 사용했을 것입니다. 그리고 그것이 대부분의 사람들이 사용하는 전부입니다. def go(x, *args) puts args.inspect end go(a, b, c) newfangled 키워드 인수 구문을 사용하는 경우 다음과 같이 이중 표시를 사

    12. 루비 열거형 슬라이싱 및 다이싱

      오늘은 slice_before에 대해 이야기하겠습니다. , slice_when 및 slice_after . 임의의 기준에 따라 배열 또는 기타 열거 가능한 항목을 그룹화해야 할 때 매우 유용한 방법입니다. Array#slice에 익숙할 것입니다. . 인덱스 범위를 기반으로 배열의 하위 집합을 가져올 수 있습니다. a = [a, b, c] a.slice(1, 2) # => [b, c] 이것은 유용하지만 열거형에는 인덱스가 없기 때문에 열거형에는 사용할 수 없습니다. slice_before , slice_when 및 s

    13. 어휘 범위 지정 및 Ruby 클래스 변수

      Ruby의 클래스 변수는 혼란스럽습니다. 전문 Ruby 사용자도 직관적으로 이해하기 어려울 수 있습니다. 가장 명백한 예는 무자비함과 관련이 있습니다. class Fruit @@kind = nil def self.kind @@kind end end class Apple < Fruit @@kind = apple end Apple.kind # => apple Fruit.kind # => apple kind 변경 자식 클래스의 변수는 부모의 변수도 변경합니다. 꽤 엉망입니다. 그러나 이

    14. Ruby 프로세스 실행 감시

      실행 중인 프로세스에서 발생하는 모든 메서드 호출을 실시간으로 기록할 수 있다는 사실을 알고 계셨습니까? 실행 중인 프로세스 내에서 실행할 코드를 주입하는 것은 어떻습니까? rbtrace의 마법을 통해 보석. rbtrace 보석은 두 부분으로 제공됩니다. 첫 번째는 추적하려는 코드에 포함하는 라이브러리입니다. 두 번째는 추적 데이터를 쿼리하기 위한 명령줄 유틸리티입니다. 간단한 예를 살펴보겠습니다. 우리가 추적할 코드는 정말 간단합니다. rbtrace만 있으면 됩니다. 보석. require rbtrace require diges

    15. 코드를 구문 분석하는 Ruby를 시청하세요.

      실용적이고 유익한 내용을 잠시 쉬면서 깔끔한 루비 파티 트릭을 보여드리면 재미있을 것 같아요. Ruby는 프로그램을 실행하기 전에 이를 구문 분석해야 합니다. 파서는 일종의 상태 머신입니다. Ruby가 상태 시스템이 수행하는 모든 작업을 기록하도록 하는 데 사용할 수 있는 잘 알려지지 않은 명령줄 플래그가 있습니다. 다음 예를 들어보세요. a = 1 + 2 -y를 사용하여 이것을 실행하면 플래그를 입력하면 다음과 같은 출력이 나타납니다. $ ruby -y sample.rb Starting parse Entering state

    16. Ruby로 Command-Line-Fu 레벨 올리기

      명령줄을 실제로 마스터하려면 수백은 아니더라도 수십 개의 작은 유틸리티 프로그램을 마스터해야 합니다. 이들 각각은 약간 다르게 일을 합니다. 꽤 압도적일 수 있습니다. 다행히도 이러한 많은 단일 목적 도구를 Ruby와 같은 범용 프로그래밍 언어로 대체할 수 있습니다. 그렇게 하면 이미 명령줄 수준을 높이는 데 필요한 Ruby 지식을 사용할 수 있습니다. 이 게시물은 Ruby를 명령줄 스위스 군용 칼로 사용하는 기본 사항을 안내합니다. 나는 똑똑한 한 줄로 당신을 폭격하지 않을 것입니다. 대신 우리는 실제로 어떻게 작동하는지

    17. Ruby에서 분수와 유리로 작업하기

      고백할게 있습니다. 저는 부동 소수점 숫자를 싫어합니다. 물론, 컴퓨터라면 유용하지만, 사람이라면 다음과 같은 상황에서 왼쪽 머리를 긁적입니다. 129.95 * 100 # => 12994.999999999998 이것은 수학적 조화에 직면할 뿐만 아니라 나쁜 UX입니다. 레시피에서 밀가루 0.37211927843컵을 측정하라고 하면 작성자가 바보인지 스스로 웃으며 컵의 3분의 1을 측정하기 시작했을 것입니다. 대부분의 사람들은 임의의 십진수에 대해 생각할 수 있는 것보다 훨씬 더 쉽게 분수에 대해 생각할 수 있습니다.

    18. TracePoint를 사용하여 Ruby의 복잡한 예외 동작 탐색

      때로는 예외가 발생하는 상황을 이해하는 것이 정말 어려울 수 있습니다. 특히 더 큰 앱에서는 더욱 그렇습니다. 기존 프로젝트 내에서 일부 코드에 대해 작업하고 있다고 상상해 보십시오. 예외를 발생시키면 이상한 일이 발생합니다. 예외를 삼켰을 수도 있습니다. 환경 변수가 변경되었을 수 있습니다. 예외가 다른 예외로 래핑될 수 있습니다. TracePoints를 사용하여 앱의 예외에 대한 추가 정보를 얻는 간단한 방법을 보여 드리겠습니다. 예외가 적용되는 경우에도 마찬가지입니다. 편리한 예 Rails에서 컨트롤러와 뷰 사이의 경계는

    19. Ruby에서 예외가 발생했을 때 다시 시도하는 방법

      모든 오류가 치명적인 것은 아닙니다. 일부는 다시 시도해야 함을 나타냅니다. 다행히 Ruby는 다시 시도하기 쉽게 해주는 몇 가지 흥미로운 메커니즘을 제공합니다. 이 게시물에서는 이러한 메커니즘과 실제 세계에서 어떻게 작동하는지 살펴보겠습니다. retry 소개 좋아 - 이것은 일종의 명백한 것이지만 그것이 존재한다는 것을 아는 경우에만 가능합니다. 개인적으로 나는 유쾌한 재시도 키워드에 대해 배우기 전에 Ruby 경력에 푹 빠져 있었습니다. 재시도는 Ruby의 예외 구조 시스템에 내장되어 있습니다. 아주 간단합니다. 복구 블록

    20. Exception# 원인이 있는 Ruby의 중첩 오류

      Ruby에서 다른 종류의 예외를 구제하고 예외를 발생시키고 다시 발생시키는 것은 일반적인 패턴입니다. ActionView는 이것에 대한 아주 분명한 예입니다. TracePoint에 대한 이전 블로그 게시물에서 언급했듯이 ActionView는 템플릿에서 발생하는 모든 예외를 삼켜 ActionView::TemplateError로 다시 발생시킵니다. . 때로는 이것이 충분하지 않습니다. 문제를 해결하는 데 도움이 되는 일부 데이터가 포함되어 있기 때문에 원래 예외가 정말 필요합니다. 다행히 Ruby 2.1부터는 Exception#cau

    Total 560 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:25/28  20-컴퓨터/Page Goto:1 19 20 21 22 23 24 25 26 27 28