Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View gxespino's full-sized avatar

Glenn Espinosa gxespino

View GitHub Profile
@gxespino
gxespino / ProgrammingManifesto.md
Last active February 4, 2021 01:01
Glenn's Path to Becoming a Ruby/Rails Programmer (Sept 2014 - Sept 2015)

#Programming Manifesto

##Books Ruby

  • Learn to Program by Chris Pine
  • The Well-Grounded Rubyist by David Black
  • Eloquent Ruby by Russ Olsen
  • Practical Object-Oriented Design in Ruby by Sandi Metz
  • Confident Ruby by Avdi Grimm

Keybase proof

I hereby claim:

  • I am gxespino on github.
  • I am gxespino (https://keybase.io/gxespino) on keybase.
  • I have a public key ASC9AsSVsPafUVpjM4OcWs7RK-yuzc7PZyarPeEWeNsmKwo

To claim this, I am signing this object:

#include <iostream>
#include <cmath>
using namespace std;
class QuadraticCalculator {
public:
string numberOfSolutions();
void printSolutions();

Collections

ITEM: 16: Duplicate Collections Passed as Arguments Before Mutating Them

When inserting objects into collections or passing as parameters to methods, most are passed as reference, Fixnum are passed as value.

  • Consider adding a ! to methods that will change the parameters.
  • Consider using Array#reject instea of Array#delete_if.
class Tuner
  def initialize (presets)
    @presets = presets
 clean
require 'pdf_forms'
require 'cliver'
input_data = {
ssn: '123-23-1234',
birthday: '02/14/1980',
color: 'Excella Red',
first_name: 'John Smith'
}

Functional Ruby - Notes

  • immutable (don't modify inputs)
  • prefer stateless objects

Prevent access to initial state

class UserQuery
  def initialize(query)
 @query = query
{
"Thin Strokes" : 2,
"Working Directory" : "\/Users\/gpespn",
"Prompt Before Closing 2" : 0,
"Selected Text Color" : {
"Green Component" : 0.6352941393852234,
"Blue Component" : 0.6980392336845398,
"Red Component" : 0.6078431606292725
},
"Rows" : 25,

Day #1

Discussed:

  • Concerns/Mixins vs. Explicit classes for business logic
    • Cons for Concerns:
      • Concern will grow in responsibility and behavior
      • Concerns across repos are hard to manage
      • "floating" methods are implicit
      • Poor naming standards across teams. The behavior encompassed in a concern is not explicit. e.g. CaseStatusConcern could be improved by CaseStatusFetchable
  • Pros for Concerns:

Responder Mobile Application Features

MVP - Initial release

  • Sign in/Sign up
  • Claim
  • Unclaim
  • Reassign
  • Mute conversations
  • Close issue/conversation
class CheckoutMachine
PRODUCT_LIST = {
123 => { product: :chips, price: 200 },
456 => { product: :salsa, price: 100 },
789 => { product: :wine, price: 1000 },
111 => { product: :cigarettes, price: 550 },
000 => { product: :bonus_card, price: nil }
}
def initialize