91. The customer cliento...

ISSUU - 91 Magazine - Issue 7 by 91 Magazine
91 Magazine - Issue 7
91 Magazine - Issue 7
An online magazine for the vintage style and craft lover.Learn the programming basics
“The goal of this guide is to be the easiest and funnest way for a beginner to get started programming.”
Read more:&
Get a complete understanding of programming
“To be a good programmer is difficult and noble. The hardest part of making real a collective vision of a software project is dealing with one’s coworkers and customers. Writing computer programs is important and takes great intelligence and skill.
But it is really child’s play compared to everything else that a good programmer must do to make a software system that succeeds for both the customer and myriad colleagues for whom she is partially responsible.”
Read more:&
Remember these 9 principles to become a good developer:
Code! Code! Code!
Try out tools and utilities that make your work easier
Try out new technologies
Look how other guys develop systems
Everything that shines is not gold
Participate in communities
Visit technology events
Read more:&
Know what makes a great programmer:
Being a great problem solver.
Being driven and lazy at the same time.
Ability to understand other people’s code
Having a passion for programming
Loving learning for the sake of learning
Being good at math
Having good communications skills
Strong debating skills
Extreme optimism
Extreme pessimism
Read more:&
Learn what really matters in programming
Work with other OSes
Research classes and internships more
Consider taking the SCJA or SCJP exams
Connect with more people
People in the workplace seemed more easygoing than I would have thought and socialization (face-time) is an important part of working
Company/workgroup attitude is the most important factor in how much I succeeded in my work.
The best job is not usually the best-paying job
Consider blogging and/or mentoring
Read much more here:&
Use the advice from Paul Graham:
To start with, read&
start thinking about specific programs you want to write
don’t start with a problem that’s too big
Initially your programs will be ugly
you’ll find it useful to look at programs other people have written. But you’ll learn more from this once you’ve tried programming yourself.
find friends who like to write programs
Also learn answers to these questions:
Why do you advise plunging right into a programming project instead of carefully planning it first?
Why do you keep going on about Lisp?
Isn’t object-oriented programming naturally suited to some problems?
Read more:&
Remember the 11 object-oriented programming principles:
Open closed principle
Liskov substitution principle
Common reuse principle&
Interface segregation principle
Stable dependancy principle
Acyclic dependencies principle
Common closure principle
Stable abstraction principle
Release-reuse equivalency principle
Dependency inversion principle
Single responsibility principle
Learn more:&
Learn programming by not programming
“The older I get, the more I believe that the only way to become a better programmer is by not programming. You have to come up for air, put down the compiler for a moment, and take stock of what you’re really doing. Code is important, but it’s a small part
of the overall process.”
“To truly become a better programmer, you have to to cultivate passion for everything else that goes on around the programming.”
“The nature of these jobs is not just closing your door and doing coding, and it’s easy to get that fact out. The greatest missing skill is somebody who’s both good at understanding the engineering and who has good relationships with the hard-core engineers,
and bridges that to working with the customers and the marketing and things like that.”
Read more:&
Learn C/C++ no matter what your main language is
“If you want to be a top-notch programmer, you can no more afford to ignore the C and C++ languages than a civil engineer can afford to ignore the difference between a plumb line and a snap line, a right angle and an oblique one.”
Read more:&
Try Python to learn to code at a higher level
“Learning Python taught me the value of programming at a higher level. Things like using boost::signals to b boost::bind and boost::function to use functions as first- boost::foreach to separate iteratio
boost::any fo and much more.”
Read more:&
If 11 object oriented design principles weren’t enough, remember the 10 proverbs every developer should know:
There’s no smoke without fire.
An ounce of prevention is worth a pound of cure
Don’t put all your eggs in one basket
As you sow, so shall you reap
Great haste makes great waste
Look before you leap
When the only tool you have is a hammer, everything looks like a nail
Silence is construed as approval
A bird in the hand is worth two in the bush
With great power comes great responsibility
Read more:&
Master the use of routines to:
reduce complexity
avoid duplicate code
reduce the effect of changes
hide sequences
improve performance
hide data structure
hide global data
promote code reuse
plan for a family of programs
improve readability
improve portability
isolat the use of nonstandard language functions
isolate complex operations
“Aside from the invention of the computer, the routine is arguably the single greatest invention in computer science. It makes programs easier to read and understand. It makes them smaller (imagine how much larger your code would be if you had to repeat the
code for every call to a routine instead of invoking the routine). And it makes them faster (imagine how hard it would be to make performance improvements in similar code used in a dozen places rather than making all the performance improvements in one routine).
In large part, routines are what make modern programming possible.”
Read more:&.
“Good programmers — regardless of whatever language they happen to be working in — understand the importance of crafting each routine with the utmost care. The routines in your code should be treated like tiny, highly polished diamonds, each one more exquisitely
polished and finely cut than the last.”
Read more:&.
Learn to estimate software projects precisely
“We tend to look at software estimates as successive hundred yard dashes instead of a long distance race. It allows a client to pick out just what they want built, while using their line item veto on tasks they don’t want to do. But this assumes that you can
break a software system down into features that have no interactions. A series of silos, though, isn’t an accurate description of software. There’s interactions between features, and rarely do you see estimates take that into account.”
Read more:&
Learn to see, when you are overengineering things
“The problem with patterns, best practices and idioms is the overuse of a single principle. Regardless what you are considering: overuse of DRY can lead to “fat” layers and classes, overuse of Separation Of Concerns to many fine grained units, overuse of modularization
to jar, plugin or just governance hell. Common sense and the balance between concepts and idioms are the solution- but it’s hard to find in real world&&.”
Read more:&
Test your app performance in conditions, similar to the live environment
“Your application is useful and popular. Your users love it. Your users love you. But over the next week, something curious happens. As people use the application, it gets progressively slower and slower. Soon, the complaints start filtering in. Within a few
weeks, the app is well-neigh unusable due to all the insufferable delays it subjects users to– and your users turn on you.”
Read more at&.
Find out the signs you are a bad programmer, symptoms and remedies to them:
Inability to reason about code
Poor understanding of the language’s programming model
Deficient research skills / Chronically poor knowledge of the platform’s features
Inability to comprehend pointers
Difficulty seeing through recursion
Also the article covers signs that you are a mediocre programmer and that you shouldn’t be a programmer.
Read more:&
Choose your platform wisely.
“When we build our applications, we have to decide what foundation (or platform) to use, and those decisions are not at all simple. In fact, these technology choices can be so difficult that you don’t have to be “foolish” to earn bad results. Many a wise man
has watched his software product floating away in the floodwaters after a big rain.”
Read more:&
Learn a framework, because
There are several reasons to work with a framework for a business:
better application security
improved time to market
easier to find someone, who knows the framework
There are 3 reasons why developers benefit from frameworks, too:
community support
frameworks give you tools to do more work and earn more money
it is easier to get a job, if you know any framework
Read more:&
There isn’t one language that can solve all problems
“Just because it’s cleaner to do something in Perl does not mean that it’s right. Nor does it mean the solution we had was “bad”.”
Read more:&
Be a good architectRead more:&
Remember the 21 laws of programming
“As any experienced computer programmer knows, there are unwritten laws that govern software development. However there are no penalties for rather, there is often a reward.”
Read more:&
Create well thought out software:
Make It Multiuser
Make It Modular
Create A Related Firefox Extension
Add Config Options For Performance
Make It Cross-Platform
Improve The Loading Time
“You may be thinking in starting programming something, for work, for your studies or as a hobby. You may also have a software project that is quite successful, but need to go beyond.
This list will help you to reach what you need.”
Read more to learn how:&
Try developing open source applicationsRead more:
Listen to the smart people
“Huge collection of Computer Science Video Lectures from Universities like ADUNI ,MIT, Washington, Berkeley, IIT, etc”
Read more:&
Search code on the Web to get more programming knowledge.
“we use search we should make effort to expand all types of knowledge instead of just solving particular problems. It will pay off with enhancing ability to solve much more advanced problems and becoming even more effective programmer.”
Read more:&
Follow these 10 commandments of developing user-friendly software:
Allow immediate termination
Leave start-up alone
Not modify existing file associations
Not ask inappropriate question
Keep noise to a minimum
Stay focused on the goal
Make actions obvious and reversible
Avoid restarts
Make configurations count
Adhere to the platform
Read more:&
Know the concepts that every software engineer should know, such as:
Interfaces
Conventions and Templates
Algorithmic Complexity
Concurrency
Cloud Computing
Relational Databases
Read more:&
Learn to be open
“I am a great believer in not ‘re-inventing the wheel’ and now encourage in others to get out of the habit of thinking ‘I can make a better what-ever-it-is”.
Read more:&
Use the seven practices for healthier, faster software development:
Improve business processes before starting development
Create a solid software development team
Improve processes for service requests
Minimize reporting of software metrics
Improve communication with the business team
Use the right programming language
Use the right IDE
Read more:&
Learn about modelling.
“Modeling is frequently used in certain software development domains to help verify the design of software, both formally and informally, before implementation starts.
One of the reasons that this approach hasn’t caught on in the programming community at large is that it slows down development and increases the overall cost significantly. You have to maintain separate artifacts that contain largely the same information: the
source code and the model. Finally models are often ignored after implementation starts.
This is well-known in the modelling community as the Achilles heal of modeling. Nonetheless modeling is still important enough for creating correct and robust software that it is widely used in many software projects where robustness is important.”
Read more:&
Learn to ask why
If a non-developer gives you a technical task for you to programm, ask “Why?”. It might happen that the result that the client/manager wants to get can be achieved with much less effort.
Trying to understand how things work and asking people for more information definitely helps, too. (Thanks to&&&for the tip.)
Check out a guide to become a better developer from Rob:
“The more you know about your co-workers, the more you’ll understand the puzzle. The more you understand the puzzle, the more indispensable you become.”
Listen to a podcast to hear a discussion around a question “What are you doing for the next 6 months to be a better developer?”
“Justice Gray and Bill Simser asked folks ‘What are you doing for the next 6 months to be a better developer?’ In this episode, Scott and Carl kick the question around.”
Read more:&
If you are a web developer, study these and other websites that every web developer should know by heart:
&from 37Signals
Read more:
Read more on becoming a better programmer:
Thanks to:&
Perhaps, you’ll find these gems of wisdom from the members of Digg helpful, too.
Learn from the masters
Critique your work
Learn some useful computer science
Do summer internships if you can
“Generally, that’s how long it takes to become an “expert” at any complex task (but only if you are effectively making an effort to improve)”
Read the tips from&&in
more detail.
Make sure you truly understand OOP.
Spend a little extra time to write small apps that are outside of your experience
Try building some apps with a rich front end (AJAX, Flex, whatever), if most of what you do is writing CRUD web apps
Consider moving business logic out of stored procedures and into application code that wraps the database and is exposed as web services, if you spend a lot of time working close to the database layer
Try different approaches to the same problem and look for commonalities and differences.
Read lots of books.
Using a framework doesn’t mean you’re going to understand how the code works under the hood
Keep up on the industry news and understand how it relates to your short and long-term job prospects.
There aren’t really a whole lot of “easy ways” to be come a better developer
Read the tips from&&in
more detail.
There are as many opinions on writing code and commenting as there are developers. Learn their opinions and form your own.
Code as if comments don’t exist
“While comments are neither inherently good or bad, they are frequently used as a crutch. You should always write your code as if comments didn’t exist. This forces you to write your code in the simplest, plainest, most self-documenting way you can humanly
come up with.”
“When you’ve rewritten, refactored, and rearchitected your code a dozen times to make it easy for your fellow developers to read and understand — when you can’t possibly imagine any conceivable way your code could be changed to become more straightforward and
obvious — then, and only then, should you feel compelled to add a comment explaining what your code does.”
Read more:
&(an example of understandable code)
Remember the rules of good commenting:
The value of a comment is directly proportional to the distance between the comment and the code.
Comments with complex formatting cannot be trusted.
Don’t include redundant information in the comments.
The best kind of comments are the ones you don’t need.
“The only “comments” guaranteed to be accurate 100% of the time– and even that is debatable– is the body of the code itself. Endeavor to write self-documenting code whenever possible.”
Read more:&
Cope with the excuses to document everything:
The code is not readable without comments
We want to keep track of who changed what and when it was changed
I wanted to keep a commented-out section of code there in case I need it again
The code too complex to understand without comments
Markers to easily find sections of code
Natural language is easier to read than code
Learn how to cope with the excuses:&
Don’t use “don’t comment” posts as an excuse not to comment. Only when you write clean, understandable code.Read more:
Include business logic in your comments
“I often find that code I’m maintaining is missing comments regarding the business logic. Rather than “Why is the code designed like this?”, something like “Why is the business process designed like this?”
This becomes most useful when you look at unfamiliar code (your own, probably) and decide that the easily-digestible code is nevertheless doing something you are sure is silly, and you change it. Big mistake.”
Read more:&
Write really great code by following these principles:
Consistency
Write descriptive variable names
Minimize horizontal scrolling
Follow the gnu convention of doing one thing and doing it right
Read more:&
Write good code for it to be testable.
“..somehow you look at your code and you say, “I understand how to write tests for your code, but my code is different “. Well your code is different because you violated one or more of the following things.”
Mixing object graph construction with application logic
Ask for things, Don’t look for things (aka Dependency Injection / Law of Demeter)
Doing work in constructor
Global State
Singletons (global state in sheep’s clothing)
Static methods: (or living in a procedural world)
Favor composition over inheritance
Favor polymorphism over conditionals
Mixing Service Objects with Value Objects
Mixing of Concerns
Learn more:&
Remember these 5 rules of variable naming:
Make your variable names long and descriptive
Put units in your variable names
If you are using Camel Case, don’t capitalise commonly hyphened, or combined words
Never, ever use the variable name temp
int i is perfectly valid in a small loop
Learn more:&
Document your code really, *really* well, because
Employees leave and you need to document well, because
You protect yourself against workers leaving with legacy application knowledge
You shorten the ramp-up time of the new employees that take over the application
You automatically create a lasting knowledge base for any problems that might arise in the future
People might actually use it
It also shows your dedication and attitude on software development
Read more and learn what makes good documentation:&
Know why, how, what, where and when to commentRead more:&
One thing is to know the functions or application structure, but there are things that can help you work more efficiently.
Develop productively:
Limit News Intake to twice a day, Including Google Reader & News Sites
Leave Yourself a Place to Start (or: Leave work with something small broken)
Draw it Out & Research First
Architect Your Perfect Distraction-Eliminating Work Environment
Eliminate IM during productive hours
Only Respond to Emergency Emails during productive hours
Limit Meetings to once a week (or less)!
Get out, and be social every 2 weeks
Take evenings off most days
Get 20 minutes of exercise in the morning, 3 times a week – but use that time!
Make/Use Better Tools
Read more:&
Get even more productive:
Minimize distractions
Maximize working time
Encourage physical and mental health
Stop hammering nails with a screwdriver
Stick to programming
Get clear project specs
Make sure the environment is safe and comfortable
Pay attention to your attitude
Don’t overlook mentors, training, and education
Code reviews
Read more:&
Read “The Productive Programmer” book
“What it will help you with is building the kind of foundational skills and ways of thinking that make it easier to learn about the new and flashy things because you’re not wasting time in other areas.”
Read more:&, discuss at&.
Have someone and something to rely on
Start a code library and find a fast way to access it
Get good and know the language
Find someone that knows more about programming than you and find someone that knows less
Find a few easy to understand and easy to navigate sites for syntax reference
“Starting programming or simply refining your work flow can be a daunting task. Everyone has their set way of working and it’s the way that works best for them. This is a list of suggestions that can help coders of all levels and languages.”
Read more:&
Get more efficient in your work:
Get ergonomic
Take it easy on your eyes
Get good peripherals
Get good hardware
Dual screens
Organize your screen and your desk
Get focused
Use the best tools
Customize your tools
Source control
Easy access to information
Read more:&
Stay healthy at work:
Setup your work environment to be ergonomic
Try using an ergonomic mouse and keyboard
Remember to look up from your monitor
Sit up and stop slouching
Keep yourself hydrated
Take regular rest breaks
Look after yourself before it is too late
“It may seem hard to believe that working at your desk can cause you long term harm, but unfortunately the real toll of sitting in the same location and doing the same operations over and over again may not be felt until it is too late.”
Read more:&
Master your soft skills to be a better person:
Temperament
“I have found that programmers who are willing to crack this social code with their soft skills, are often the very same geeks who end up in leadership positions, or who start their own company. I can say without question that it is not my ability to decipher
collaborative filtering algorithms that has brought me the most success, but it is the soft skills that continue to generate interest with employers. This was a difficult realization, but one that I have come to accept and embrace.”
Read more:&
Be creative:
Learn a new language
Start from the ground up
Question everything
Do it for fun
Never stop testing ideas
Find a passion
Master your tools
Start making abstract associations
Think of structure as a tool, not a limitation
Don’t rule anything out until you try it
Always look for a simpler and more elegant solution
Don’t be afraid to build off the code of others
Don’t be afraid to collaborate
From the very basic, create the beautiful
Read more on what others learn from creative programmers:&
Create a list of things you need to do
“This software developer does not have a detailed list of all the things he needs to do. Which means, despite adamantly claiming that he is 99 percent done — he has no idea how long development will take! There’s simply no factual basis for any of his schedule
Read more:&
Save your time
“Over the past couple of weeks I have been trying to find out what the main principles of time management are in the case of agile software development. I was able to distinguish 10 principles so far, and I will present them here for your convenience.”
Read more:&
Learn the essential life skills to stay afloat:
How to handle your finances
How to cook
How to interact with people
How to take care of yourself
How to take care of your stuff
How to have fun
Read more:&.
Motivate yourself
“You might have all the time in the world to work on your game and you just don’t feel motivated enough to work. When that happens, you might need some tools to be productive.”
Read more:&
Get more active to stay motivated:
Find/rediscover your passion
Remove distractions
Listen to podcasts and read blogs
Blog yourself
Learn a new technology every month
Get involved in an open source project
Seek out local groups around your programming language of interest
Read more:&
Not only be smart, but be willing to learn to become a good developer.
“The huge demand for developers, coupled with the relative youth of our industry, has created hordes of developers who simply don’t understand what they are doing. They do not understand how computers work, or how a compiler works. They use dictionaries and
stacks all the time, but they don’t understand that these are classic data structures, and not something that Microsoft just made up. And the problem isn’t that they don’t know these things, it is that they don’t want to know these things.”
Read more:&
Get a great, comfortable chair.
“In fact, after browsing chairs for the last few years of my career, I’ve come to one conclusion: you can’t expect to get a decent chair for less than $500. If you are spending less than that on seating — unless you are getting the deal of the century on dot-bomb
bankruptcy auctions — you’re probably making a mistake.”
“Choice of seating is as fundamental and constant as it gets in a programming career otherwise marked by relentless change. They are long term investments. Why not take the same care and consideration in selecting a chair as you would with the other strategic
directions that you’ll carry with you for the rest of your career? Skimping yourself on a chair just doesn’t make sense. “
Read more:
Address negative attitudes in your team
“To Mr./Ms. Pessimism new ideas and new thinking are “yet another thing I have to learn”, rather than a chance to improve one’s self and challenge one’s own assumptions. If left unchecked, such negative attitudes can result in the team member sticking their
head in the sand in hopes they can avoid learning anything at all.”
Read more:&
Learn to identify and work with great clients
All cards are played face up
Mutual accountability
Willing to share whatever is necessary to get the job done
Constantly probing to find the best solution
Time is no barrier
Eager to learn…and to teach
An ‘always on’ response mechanism
Keep up the pace
Express thanks
Accept value based pricing
“Great clients are worth their weight in gold and over the last few months I’ve been fortunate to work with a couple who are top drawer. Such clients bring interesting challenges to the table. Challenges that stretch the team yet produce a solid, satisfying
Read more:
Scale your services and increase pricingScale your services to provide a better service to your clients, which they will appreciate. It’ll come at a cost, but it’s worth it.
“In the long run, what do great clients need? Do they need simple implementers that can get menial tasks done quickly and cheaply, or do they need long term, stable and reliable web development experts that can get the job, however great or small, done right
the first time? Well, there are plenty of clients out there of either kind, but we aim to serve the latter group.”
Read more:&
See, where your project is starting to failWhen you start seeing these signs on the wall, take action.
Read more:&
Learn to work with your boss
“Bosses: You can’t live with them, and you can’t live without them. Like it or not, most of us must deal with a boss, and the way we do so affects not just our career advancement and our salary, but also our mental well-being. Here are some tips on how to get
along better with your boss.”
Read more:&
Break rules, such as these:
Keep your eyes on your own work
Do not discuss your work with others (or do so only at a high level)
Do not copy other people’s code
First develop a prototype, then deliver a more polished product by the end of the year
Ask your advisor or TA for help
Read more:&
Learn a few tips to work well in corporations:
Learn the&&and use it
Make sure you’re using Web 1.0 before you even attempt Web 2.0
Code to the requirements
Development efforts should be like the Special Effects in a movie
Read more:
Dress well to:
get promoted
be a good manager
be confident
Learn how to dress up:&
Regardless of the state of the economy, companies still need developers. And a good developer is a developer with a job, no matter, if inhouse or&freelance.
Here are some tips on how to get a good development job.
Do anything to enjoy your work
Make sure you like doing your job
Make sure you get satisfaction out of your job
Choose between actual jobs, not companies
If you like developing software, then keep working as a developer!
Don’t put up with being a Code Monkey
Learn from your co-workers
Keep up with new technologies and ways of working
Don’t focus on job security
Don’t let money dominate your decisions
Always make sure you can leave your job if you’re not happy there
“To me, one of the most important parts of a job is the fact that you should enjoy doing it. If you do the math, you’ll quickly realize that you’ll spend somewhere around half of your active adult life at your job, so you might as well try to make the most
of it. If you’re unhappy or frustrated at your job, you’re essentially wasting a large part of your life so you’re better off trying to find something that you actually enjoy doing.”
Read more:&
Know available salary data, but don’t worry about it.
Since you have your own unique set of abilities and skills and the company you want to work for has its situation, you’ll be able to get a fairer salary, than, if you had one in mind.
Nick Corcodilos, the IT hiring expert and the owner of AskTheHeadHunter, advises IT jobseekers:
“You should never, ever, ever divulge your prior salary to any employer. Because as soon as you do, you destroy your ability to negotiate. It’s the equivalent of inviting your prospective employer to judge you by the standards of your last job. Which is utterly
Read more:
, November 2007For example, a Senior Web Developer would get
$76,250 – $108,250
Add 10% for Java development skills, 10% for Java enterprise development skills, 5% for LAMP, 5% for AJAX development, etc.
you’ll get paid more in NY, Washington, Stamford, Boston and Chicago
Learn one or more of the most demanded IT skills to have more fun at work and earn more:
Network administration, especially among IT firms and governmental institutions
Windows administration
Desktop support, starting from $46k
Database management
Wireless network management, to manage wi-fi, mostly
Telecommunications support,
Web development, design to address web-centric business strategies
Business intelligence, a trend gaining steam at the moment
Virtualization, one of the hottest IT trends, too
.NET development
CRM implementation
Web application development
Project management
MS SQL server development
SAP Skills
Web 2.0 Application Development
Read more:
, (September, 2008)
&(March 2008)
Learn about and become efficient with the current technologies:
Multicore and hybrid processors
Virtualisation and fabric computing
Social networks and social software
Cloud computing and cloud/Web platforms
Web mashups
User Interface
Ubiquitous computing
Contextual computing
Augmented reality
Read more:
Know the states to get tech jobs in, such as:
California,&
North Carolina
Pennsylvania
Read more:&
Know the cities that pay more for the IT jobs:
Silicon Valley with $144k on average
San Francisco and Oakland, California
Austin, Texas
Read more:&&(June 2008)
Follow these simple tips from Lifehacker to get the job you want:
Let RSS and email find the job for you
Shoot for the right salary
Rebuild your resume
Ace the interview
Restart a stalled search
Learn more:&.
Learn the truth about corporate software development
“It doesn’t matter where you look, you’ll get to know over time hundreds of people working as programmers for those corporations and it’s very, very rare to encounter someone who really has a clue about what he’s doing.”
“Wouldn’t it be great to employ the master/apprentice model known since the middle ages? Why do we allow inexperienced people to mess around with the most important thing in software, which is the code? I think a well motivated apprentice working alongside
with a good master will evolve into a true master himself over the years.”
Read more:&
Understand that you weren’t supposed to have a boss
“Technology tends to separate normal from natural. Our bodies weren’t designed to eat the foods that people in rich countries eat, or to get so little exercise. There may be a similar problem with the way we work: a normal job may be as bad for us intellectually
as white flour or sugar is for us physically.”
Read more:&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:348914次
积分:5326
积分:5326
排名:第1652名
原创:147篇
转载:127篇
评论:88条
(3)(2)(1)(3)(4)(4)(2)(2)(3)(4)(5)(5)(1)(1)(5)(6)(3)(8)(7)(8)(4)(8)(4)(1)(2)(4)(1)(1)(4)(6)(4)(7)(13)(10)(2)(8)(3)(7)(7)(4)(7)(11)(4)(4)(4)(5)(5)(2)(10)(15)(1)(7)(2)(3)(4)(5)(1)(2)(2)(11)(2)

我要回帖

更多关于 the customer 的文章

 

随机推荐