[PYTHON] Les étrangers parlent: Comment nommer les classes et les méthodes en anglais

Je suis un étranger. Je suis américaine. Bonjour lol

Pour être précis, j'étais un Porto Rico et j'ai déménagé aux États-Unis à l'âge d'un an et j'ai grandi aux États-Unis tout le temps, mais c'est une autre histoire.

Objectif de cet article

De nombreux Japonais ne sont pas sûrs de leur maîtrise de l'anglais. Malheureusement, j'entends souvent les gens dire «Je ne comprends pas l'anglais» et «Je ne parle pas du tout l'anglais». Cependant, j'ai rencontré des Japonais qui parlent anglais, et même si ce n'est pas parfait, je suis sûr que mon intention a été correctement exprimée. Être capable de transmettre vos pensées et de poursuivre votre travail, plutôt que de parler couramment. Je pense que c'est la chose la plus importante pour s'impliquer dans des programmes open source et des programmes en anglais (les étrangers sont également très utiles). Dans la culture japonaise, il est rare de se vanter que "je peux le faire!", Mais à travers cet article, je voudrais vous donner un peu de confiance dans la façon de nommer votre programmation, même si vous ne maîtrisez pas. Cela n'a pas à être parfait. Allons-y!

Je veux que tu le lises ensemble

Résumé des mots anglais souvent utilisés dans la programmation [mis à jour de temps à autre] Informations de référence pour une dénomination de méthode réussie 7 choses que je veux que vous gardiez pour ne pas être un putain de code <- (Surtout "Les commentaires sont N'essayez pas de l'écrire proprement. Mettez vos pensées dedans !!! »)

Aperçu

  1. Comment écrire comme l'anglais
  2. Traitez les classes, les méthodes et les arguments comme une seule phrase, y compris autant que possible des arguments.
  3. Éliminez les pauses
  4. Longueur des variables, etc. ・ Pièges lors de l'omission

1. Comment écrire comme l'anglais

J'écris Ruby normalement, mais j'aime vraiment RSpec.

example_spec.rb


it { is_expected.to eq(10) }

En fait, la première fois que je l'ai vu sur RSpec était le "devrait" obsolète, mais quand j'ai vu quelque chose comme ça, "Quoi!? Est-ce une fourmi ?? C'est comme lire une phrase en anglais normal!" J'en ai été impressionné. Mais quand j'y pense, quand j'ai commencé à étudier Ruby à partir de Java, et quand j'ai regardé Python, j'ai eu la même impression.

En fait, je pense que les langages et les cadres de programmation continueront d'évoluer. En d'autres termes, les futurs programmes et langages de programmation se composeront d'un morceau d'anglais, comme RSpec et shoulda_matchers. En regardant cette façon d'écrire, je pense: "Oh, c'est bien. C'est facile à lire!" Je pense que les autres étrangers doivent le penser aussi.

C'est le point ici! Mettez en œuvre après avoir réfléchi au texte anglais que vous souhaitez créer! </ strong>

Il semble naturel d'écrire le code en anglais autant que possible, mais il ne s'agit pas d'écrire souvent en anglais des mots </ strong>, mais d'écrire en anglais des phrases </ strong>. Bien sûr, il n'est pas nécessaire que ce soit une phrase solide en anglais. La facilité d'utilisation du code est de créer de courtes commandes en une seule bouchée. Écrivez le texte anglais que vous souhaitez créer, en commençant par une idée complète de ce que fait la classe, pas seulement de la méthode que vous souhaitez écrire. Sortez le papier et écrivez quelques phrases! Le point n'est pas des phrases compliquées et longues, mais des phrases simples et confortables! En particulier, je voudrais vous présenter l'un des styles d'écriture agréables dans l'article suivant.

2. Traitez les classes, les méthodes et les arguments comme une seule phrase, y compris autant que possible des arguments.

Les classes sont généralement synonymes. Lors de la création d'un jeu, Player, lors de la création d'un service, ʻUser`. Les objets sont quelque chose en premier lieu, donc c'est facile à comprendre.

N'est-il pas souvent possible de nommer une méthode? Ceci est un exemple simple, mais jetez un œil au programme suivant.

game.rb


Type = ["♥", "♦", "♣︎", "♠︎"]

class Deck

  attr_accessor :cards

  def initialize
    @cards = []
    4.times do |n|
      1.upto(10) do |i|
        @cards.push([Type[n], i])
      end
    end
  end
end

class Player
  def initialize(name)
    @name = name
  end

  def shuffle deck
    deck.cards.shuffle
  end
end

Avec cette façon d'écrire,

player1.shuffle deck

C'est assez facile à lire.

Récemment, j'étais un peu inquiet quand j'ai vu le style d'écriture suivant.

def shuffle_deck deck
  deck.cards.shuffle
end

C'est un nom que vous pouvez comprendre simplement en regardant le nom de la méthode, mais comme la méthode est généralement associée à l'argument, je pense que ce sera assez concis si vous faites une phrase en combinant l'argument avec le nom de la méthode. C'est exactement ce que font RSpec et shoulda_matchers.

point! La meilleure façon d'écrire " sujet + verbe + objet </ strong>" est w Sujet = classe Verbe = méthode Object = Argument

Mais je dois aller avec "sujet + verbe + objet"! Pas vraiment. Je veux juste clarifier ce qui fait quoi pour quoi.

Ce qui suit est un exemple légèrement plus avancé. J'ai récemment voulu écrire une méthode comme celle-ci. «Le joueur» a «score», et si vous gagnez le jeu, le score augmentera. Quand j'ai pensé au texte anglais, "Add 1 to score" m'est venu à l'esprit. Mais alors ça ressemble à ça ...

player.rb


class Player
  def initialize
    @score = 0
  end

  def add(num)to_score
    @score += num
  end
end

player1 = Player.new
player1.add(1)to_score

C'est impossible, non? J'ai pensé: "Mais c'est facile à lire !!! Oh, je veux écrire un nom de méthode comme celui-ci!" À ce moment-là, j'ai proposé la méthode suivante

player.rb


def score_increases_by(num)
  @score += num
end

player1.score_increases_by(1)

Ce n'est pas sous la forme de «sujet + verbe + objet», mais ici «num» est l'objet de by, donc c'est clair ce que fait la classe pour quoi, et cela peut être lu comme une phrase en anglais.

"Le score du joueur 1 augmente de num" C'est facile à lire. Avec "player1 score" comme sujet et "num" comme argument. Traiter les classes, les méthodes et les arguments comme une seule phrase facilite la lecture de l'ordre des mots et du flux de la phrase, n'est-ce pas?

Bien sûr, vous pouvez écrire player1.score + = 1, mais ww par exemple!

Pour donner un autre exemple ...

object.rb


player1.draw card
player1.send message
player1.forfeit match

etc

Veuillez essayer cette technique par tous les moyens.

3. Éliminez les pauses

Dans Ruby, la méthode "?" Est souvent utilisée pour vérifier vrai ou faux.

true_or_false.rb


class Player

  attr_accessor :card, :score

  def initialize
    @card = "♥"
    @score = 0
  end

  def has_heart?
    #Renvoie la vérité
    @card == "♥"
  end
end

if player1.has_heart?
  puts "You have a heart!"
end

est-ce. .. .. Je suis un peu inquiet personnellement. Parce que je ne dis pas "Si le joueur a du cœur?" En anglais. Cela ressemble à "Posez une phrase qui inclut Si ?? Si ... alors ... flux?" Alors là où il ne devrait pas y avoir de pause, il y a une pause. Ce serait mieux si je le remplaçais, mais cela me semble toujours étrange ...

true_or_false.rb


puts "You have a heart!" if player1.has_heart?

Pourquoi demandes-tu? C'est comme ww Mais je pense que c'est la "culture" de Ruby, donc je ne pense pas que cela puisse être changé si facilement. (J'adore Ruby! Je n'ai pas ça! Ww)

Je souhaiterai écrire

true_or_false.rb


def has_heart
  @card == "♥"
end

if player1.has_heart then
  puts "You have a heart!"
end

Avec ce genre de sentiment, je ne ressens aucune gêne dans la relation avec alors. Informations de référence pour nommer les méthodes avec succès "Méthodes qui renvoient des valeurs booléennes" je pense que c'est bien

Vous pourriez penser que cela ne fait pas beaucoup de différence, mais cela rend le code plus facile à lire. Pouvez-vous lire votre code rapidement? Y a-t-il une pause dans la phrase qui devrait être prononcée d'un seul coup?

Si vous sentez une rupture dans la «phrase» que vous voulez créer, pensez au nom de la méthode, à l'instruction if, à l'instruction while, etc. et refaites-la pour pouvoir la prononcer d'un seul coup.

4. Longueur des variables, etc. ・ Pièges lors de l'omission

Cela n'a rien à voir avec l'anglais, mais je suis curieux de temps en temps, alors je voulais écrire quelque chose. Au lieu de "Je veux que vous le lisiez ensemble", 7 choses que je veux que vous gardiez car cela ne devient pas un putain de code J'ai mis . Ce qui suit a été écrit dans l'article

Ne laissez pas un commentaire qui demande "pourquoi?" !!

Le nom de la méthode, le nom de la variable, etc. du code sont les mêmes. Récemment, j'ai vu le mot «pélmanisme» pour la première fois de ma vie. L'anglais est la première langue, mais je ne savais pas ce que cela signifiait. Quand j'entends l'histoire de la personne qui a introduit le mot, «pélmanisme» signifie «faiblesse nerveuse». Pour moi, la "faiblesse nerveuse" a toujours été appelée "Memory Game" www

Alors écrivez le nom de la méthode, etc. afin que vous et la personne qui lisez le code puissiez comprendre vos intentions. Concentrez-vous sur la lisibilité pour maintenir le code, pas un anglais cool et long. Le mieux est la simplicité.

Veillez simplement à l'omettre. Avez-vous déjà vu un code comme celui-ci?

abbreviations.rb


rlts = db.execute(sql)
rlts.each do |r|
   r = r.to_i
end

Je voudrais dire: "Qu'est-ce que rlts en premier lieu? Je ne sais pas du tout quand il s'agit de r!" Si vous écrivez un tel code, même s'il est un peu long, veuillez écrire les mots anglais tels qu'ils sont afin que l'intention puisse être transmise

abbreviations.rb


results = db.execute(sql)
results.each do |result|
   result = result.to_i
end

Eh bien, comme c'est court, je pense que c'est correct de changer la forme singulière "result" en "res", mais je pense qu'il est important de transmettre l'intention de toute façon. Par conséquent, essayez de ne pas omettre grossièrement les mots anglais. Si vous n'êtes pas sûr de vous, écrivez simplement les mots anglais.

Je pense que vous pouvez omettre les omissions fréquemment utilisées et dans le cas de variables composées de plusieurs mots. Vous pouvez voir que la db ci-dessus est une base de données. L'abréviation est beaucoup utilisée, donc ça va. Si ce n'est pas familier,

ppap.rb


# pen pineapple apple pen
ppap = Picotaro.new

#Il est sorti ww est-il familier w

Je pense que vous devriez l'écrire avec un commentaire.

Regarder en arrière

Je pense que les éléments les plus importants sont les deux suivants

  1. Je veux surfer sur la vague de la réalité où la manière d'écrire la programmation change de plus en plus comme l'anglais
  2. Des choses simples et faciles à comprendre mèneront à l'efficacité du travail, pas un anglais courant ou des méthodes / variables qui tiennent dans un mot anglais.

Il peut être difficile pour moi de penser "je peux le faire!", Mais beaucoup de japonais écrivent du code assez bon! Écrivons du code facile à étendre en partageant des mots faciles à comprendre avec tout le monde!

Do your best! And please enjoy programming in English (^_^)

Recommended Posts