各位还想去外包公司的,来看看代码质量吧

嗯,我在外包公司了,工资还挺可以的,外企月薪资1W5,混了2个月了,但是感觉做不下去了

这是我去上班超过3天的第1个外包公司。3年前以前也去过另一个外包公司,到公司3天就跑路了,那家公司给的薪资1W3,外包公司确实工资还可以的。

为了吃饭的各位,能为了工作而到外包公司上班的老铁,看看这些代码质量,这能看的下去的,说明你非常适合到外包公司上班。

这不是打击人的,是在告诉各位外包公司是可以给得起工资,也并非全部是996。

至少为我这里是早上9:30上班, 下午6:00下半,双休,来了这么久还未加过1次班。加班不给加班费,第二天可以晚来加班的时长。

这里条件还挺好,但是我坚持不下去的原因,就是这些代码,每次修改一个功能就要重写一大堆。

外包公司的缺点就是代码质量差,难改哦,看着这些代码就知道质量了。

外企有的福利都有,我舍不得现在不加班的舒适感,但是又感觉自己做不下来,先发发牢骚吧。

感觉都是laravel害了我,用了它4年了,如果写的感觉还能简洁的,就想继续优化下去,它就是用这些优雅害得我都融入不了其他公司了,我哭笑啊!

文件1

<?php
namespace Silksoftwarecorp\CmsTool\Model;

use Silksoftwarecorp\CmsTool\Api\CampaignInterface;
use Magento\Framework\Serialize\SerializerInterface;
class CampaignRepository implements CampaignInterface
{
    /**
     * @var \Magento\Catalog\Api\CategoryRepositoryInterface
     */
    private $categoryRepository;
    protected $_productRepository;
    /**
     * @var \Magento\Store\Model\StoreManagerInterface
     */
    protected $storeManager;
    protected $typeModel;
    protected $cache;
    /**
     * @var SerializerInterface
     */
    private $serializer;
    protected $product;
    public function __construct(
        \Magento\Catalog\Api\CategoryRepositoryInterface $categoryRepository,
        \Magento\Store\Model\StoreManagerInterface $storeManager,
        \Silksoftwarecorp\CmsTool\Model\TypeFactory $typeModel,
        SerializerInterface $serializer,
        \Magento\Catalog\Model\Product $product,
        \Magento\Catalog\Model\ProductRepository $productRepository,
        \Magento\Framework\App\CacheInterface $cache
    ){
        $this->categoryRepository = $categoryRepository;
        $this->_productRepository = $productRepository;
        $this->typeModel = $typeModel;
        $this->storeManager = $storeManager;
        $this->cache = $cache;
        $this->_product = $product;
        $this->serializer   = $serializer;
    }
    /**
     * Get Tools Campaign
     *
     * @param string $channel
     * @param string $category_id
     * @param string $is_main_category
     * @return mixed
     */
    public function getToolsCampaign($channel, $category_id)
    {
        $result = array();
        $data = [];
        $storeId = (int)$this->storeManager->getStore()->getId();
        $cacheKey = 'cmstool_api_campaign_'.$channel.'_'. $storeId.'_'.($category_id?'_'.$category_id:null);

        $mata = $this->cache->load($cacheKey);
        /*var_dump($mata);
        exit;*/
        if(!$mata)
        {
            $helper = $this->getObject('Silksoftwarecorp\CmsTool\Helper\Datas');
            $templates = $helper->getToolsCampaignData($channel,$category_id);
    //        $mediaUrl = $this->getObject('Magento\Store\Model\StoreManagerInterface')->getStore()->getBaseUrl().'pub/media/';
            $mediaUrl = $this->getObject('Magento\Store\Model\StoreManagerInterface')->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);        
            if($templates)
            {
                if (isset($templates[0]['template'])) {
                    $campaigns = json_decode($templates[0]['template'],true);
                    if ($campaigns){
                        foreach ($campaigns as $campaign) {
                            $campaignData = [];
                            $fields = [];
                            $typesModel = $this->typeModel->create()->load($campaign['type_id']);
                            $params = 'campaign_id,campaign_name,category_id,sort,channel,start_date,end_date,type_id,template_name';
                            if($typesModel->getFields())
                            {
                                $params = $params.','.$typesModel->getFields();
                            }
                            $campaignData['type_text'] = $typesModel->getTypeText();
                            $campaignData['type_name'] = $typesModel->getTypeName();
                            $fields = explode(',',$params);
                            $mata = [];
                            $cata = [];
                            foreach ($campaign as $key => $value) {
                                if(in_array($key, $fields))
                                {
                                    if ($value) {       
                                        $campaignData[$key] = $value;
                                        if ($key == 'img') {
                                            $campaignData[$key] = $mediaUrl.$value; // ing url completion
                                        }
                                        if ($key == 'img_pc') {
                                            $campaignData[$key] = $mediaUrl.$value; // ing url completion
                                        }
                                        if ($key == 'img_mb') {
                                            $campaignData[$key] = $mediaUrl.$value; // ing url completion
                                        }
                                        if ($key == 'start_date') {
                                            $campaignData[$key] = strtotime($value); // ing url completion
                                        }
                                        if ($key == 'end_date') {
                                            $campaignData[$key] = strtotime($value); // ing url completion
                                        }
                                        for($i=1;$i<11;$i++)
                                        {
                                            if($key == 'link_category_id_'.$i)
                                            {
                                                $mata[$i-1]['link_category_id'] = $value;
                                                $category = $this->categoryRepository->get($value,$storeId);
                                                if(!empty($category))
                                                {
                                                    $url = $category->getUrl();
                                                    $mata[$i-1]['web_url'] = $url;  
                                                }
                                                unset($campaignData[$key]);
                                            }
                                            if($key == 'link_category_name_'.$i)
                                            {
                                                $mata[$i-1]['link_category_name'] = $value;   
                                                unset($campaignData[$key]);
                                            }
                                            if($key=='link_category_name_'.$i.'_zh')
                                            {
                                                $mata[$i-1]['link_category_name_zh'] = $value;   
                                                unset($campaignData[$key]);   
                                            }
                                        }
                                        if($key == 'link_category_id')
                                        {
                                            $category = $this->categoryRepository->get($value,$storeId);
                                            if(!empty($category))
                                            {
                                                $url = $category->getUrl();  
                                                $campaignData['web_url'] = $url;  
                                            }
                                        }

                                        if ($key == 'link_sku'&&!empty($value)) {
                                            try {
                                                $product = $this->_productRepository->get($value,false,$storeId);
                                            } catch (\Magento\Framework\Exception\NoSuchEntityException $e){
                                                $product = false;
                                            }
                                            if($product)
                                            {
                                                $product_zh = $this->_productRepository->get($value,false,1);
                                                $product_en = $this->_productRepository->get($value,false,2);  
                                                $campaignData['product_url'] = $product->getProductUrl();
                                                $campaignData['price'] = number_format($product->getFinalPrice(), 2, '.', ''); 
                                                if(!empty($product_zh))
                                                {
                                                    $campaignData['name_zh'] = $product_zh->getName();     
                                                }
                                                if(!empty($product_en))
                                                {
                                                    $campaignData['name'] = $product_en->getName();

                                                }
                                            }    
                                        }

                                    }
                                } 

                            }
                            if(!empty($mata))
                            {
                                foreach($mata as $k=>$v)
                                {
                                    $cata[] = $v;
                                }
                            }
                            $campaignData['category_list'] = $cata;


                            $data[] = $campaignData;
                        }

                    }
                }
            }else{
                $templatet = $helper->getToolsTemplateData($channel,$category_id);
                if ($templatet) {
                    foreach ($templatet as $template) {
                        $templateData = [];
                        if(isset($template['channel'])&&in_array($channel, explode(',',$template['channel'])))
                        {
                            $fields = [];
                            $params = 'template_id,template_name,category_id,sort,channel,start_date,end_date,show_homepage,sort_homepage,is_main_category,type_text,type_id';


                            if(isset($template['fields']))
                            {
                                $params = $params.','.$template['fields'];
                            }
                            $fields = explode(',',$params);
                            $mata = [];
                            $cata = [];
                            foreach ($template as $key => $value) {
                                if(in_array($key, $fields))
                                {
                                    if ($value) {       
                                        $templateData[$key] = $value;
                                        if ($key == 'img') {
                                            $templateData[$key] = $mediaUrl.$value; // ing url completion
                                        }
                                        if ($key == 'img_pc') {
                                            $templateData[$key] = $mediaUrl.$value; // ing url completion
                                        }
                                        if ($key == 'img_mb') {
                                            $templateData[$key] = $mediaUrl.$value; // ing url completion
                                        }
                                        if ($key == 'start_date') {
                                            $templateData[$key] = strtotime($value); // ing url completion
                                        }
                                        if ($key == 'end_date') {
                                            $templateData[$key] = strtotime($value); // ing url completion
                                        }
                                        for($i=1;$i<11;$i++)
                                        {
                                            if($key == 'link_category_id_'.$i)
                                            {
                                                $mata[$i-1]['link_category_id'] = $value;
                                                $category = $this->categoryRepository->get($value,$storeId);
                                                if(!empty($category))
                                                {
                                                    $url = $category->getUrl();
                                                    $mata[$i-1]['web_url'] = $url;  
                                                }
                                                unset($templateData[$key]);
                                            }
                                            if($key == 'link_category_name_'.$i)
                                            {  
                                                $mata[$i-1]['link_category_name'] = $value;   
                                                unset($templateData[$key]);
                                            }
                                            if($key=='link_category_name_'.$i.'_zh')
                                            {
                                                $mata[$i-1]['link_category_name_zh'] = $value;   
                                                unset($templateData[$key]);   
                                            }
                                        }
                                        if($key == 'link_category_id')
                                        {
                                            $category = $this->categoryRepository->get($value,$storeId);
                                            if(!empty($category))
                                            {
                                                $url = $category->getUrl();  
                                                $templateData['web_url'] = $url;  
                                            }
                                        }

                                        if ($key == 'link_sku'&&!empty($value)) {
                                            try {
                                                $product = $this->_productRepository->get($value,false,$storeId);
                                            } catch (\Magento\Framework\Exception\NoSuchEntityException $e){
                                                $product = false;
                                            }
                                            if($product)
                                            {
                                                $product_zh = $this->_productRepository->get($value,false,1);
                                                $product_en = $this->_productRepository->get($value,false,2);  
                                                $templateData['product_url'] = $product->getProductUrl();
                                                $templateData['price'] = number_format($product->getFinalPrice(), 2, '.', '');  
                                                if(!empty($product_zh))
                                                {
                                                    $templateData['name_zh'] = $product_zh->getName();     
                                                }
                                                if(!empty($product_en))
                                                {
                                                    $templateData['name'] = $product_en->getName();   
                                                }
                                            }    
                                        }

                                    }
                                } 

                            }
                            if(!empty($mata))
                            {
                                foreach($mata as $k=>$v)
                                {
                                    $cata[] = $v;
                                }
                            }
                            $templateData['category_list'] = $cata;

                        }
                        $data[] = $templateData;
                    }       
                }
            }
            $mata = $this->serializer->serialize($data);
            $this->cache->save($mata, $cacheKey, [], 60);
        } 
        $result['ret_code'] = 200;
        $result['data'] = $this->serializer->unserialize($mata);

        return $this->renderResult($result);
    }


    /**
     * @param $result
     * @return mixed
     */
    public function renderResult($result)
    {
        return $this->getObject('Magento\Framework\Json\EncoderInterface')->encode($result);
    }

    /**
     * @param $className
     * @return mixed
     */
    public function getObject($className)
    {
        return \Magento\Framework\App\ObjectManager::getInstance()->get($className);
    }

    /**
     * @param $className
     * @return mixed
     */
    public function createObject($className)
    {
        return \Magento\Framework\App\ObjectManager::getInstance()->create($className);
    }
}

文件2

<?php
namespace Silksoftwarecorp\CmsTool\Model;

use Silksoftwarecorp\CmsTool\Api\TemplateInterface;
use Magento\Framework\Serialize\SerializerInterface;
use Magento\Framework\Exception\NoSuchEntityException;
class TemplateRepository implements TemplateInterface
{
    /**
     * @var \Magento\Catalog\Api\CategoryRepositoryInterface
     */
    private $categoryRepository;
    protected $_productRepository;
    /**
     * @var \Magento\Store\Model\StoreManagerInterface
     */
    protected $storeManager;
    protected $cache;
    /**
     * @var SerializerInterface
     */
    private $serializer;
    public function __construct(
        \Magento\Catalog\Api\CategoryRepositoryInterface $categoryRepository,
        \Magento\Store\Model\StoreManagerInterface $storeManager,
        SerializerInterface $serializer,
        \Magento\Catalog\Model\ProductRepository $productRepository,
        \Magento\Framework\App\CacheInterface $cache
    ){
        $this->serializer   = $serializer;
        $this->categoryRepository = $categoryRepository;
        $this->_productRepository = $productRepository;
        $this->storeManager = $storeManager;
        $this->cache = $cache;
    }
    /**
     * Get Tools Template
     *
     * @param string $channel
     * @param string $category_id
     * @param string $is_main_category
     * @return mixed
     */
    public function getToolsTemplate($channel, $category_id = null ,$is_main_category = null)
    {
        $result = array();
        $data = [];
        $storeId = (int)$this->storeManager->getStore()->getId();
        $cacheKey = 'cmstool_api_template_'.$channel.'_'.$storeId.'_'.($category_id?'_'.$category_id:null);

        $mata = $this->cache->load($cacheKey);
        if(!$mata)
        {
            $helper = $this->getObject('Silksoftwarecorp\CmsTool\Helper\Data');
            $templates = $helper->getToolsTemplateData($channel,$category_id,$is_main_category);
    //        $mediaUrl = $this->getObject('Magento\Store\Model\StoreManagerInterface')->getStore()->getBaseUrl().'pub/media/';
            $mediaUrl = $this->getObject('Magento\Store\Model\StoreManagerInterface')->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);

            // Only get exist field


            if ($templates) {
                foreach ($templates as $template) {
                    $templateData = [];
                    if(isset($template['channel'])&&in_array($channel, explode(',',$template['channel'])))
                    {
                        $fields = [];
                        $params = 'template_id,template_name,category_id,sort,channel,start_date,end_date,show_homepage,sort_homepage,is_main_category,type_text,type_id';


                        if(isset($template['fields']))
                        {
                            $params = $params.','.$template['fields'];
                        }
                        $fields = explode(',',$params);
                        $mata = [];
                        $cata = [];
                        foreach ($template as $key => $value) {
                            if(in_array($key, $fields))
                            {
                                if ($value) {       
                                    $templateData[$key] = $value;
                                    if ($key == 'img') {
                                        $templateData[$key] = $mediaUrl.$value; // ing url completion
                                    }
                                    if ($key == 'img_pc') {
                                        $templateData[$key] = $mediaUrl.$value; // ing url completion
                                    }
                                    if ($key == 'img_mb') {
                                        $templateData[$key] = $mediaUrl.$value; // ing url completion
                                    }
                                    if ($key == 'start_date') {
                                        $templateData[$key] = strtotime($value); // ing url completion
                                    }
                                    if ($key == 'end_date') {
                                        $templateData[$key] = strtotime($value); // ing url completion
                                    }
                                    for($i=1;$i<11;$i++)
                                    {
                                        if($key == 'link_category_id_'.$i)
                                        {
                                            $mata[$i-1]['link_category_id'] = $value;
                                            $category = $this->categoryRepository->get($value,$storeId);
                                            if(!empty($category))
                                            {
                                                $url = $category->getUrl();
                                                $mata[$i-1]['web_url'] = $url;  
                                            }
                                            unset($templateData[$key]);
                                        }
                                        if($key == 'link_category_name_'.$i)
                                        {  
                                            $mata[$i-1]['link_category_name'] = $value;   
                                            unset($templateData[$key]);
                                        }
                                        if($key=='link_category_name_'.$i.'_zh')
                                        {
                                            $mata[$i-1]['link_category_name_zh'] = $value;   
                                            unset($templateData[$key]);   
                                        }
                                    }
                                    if($key == 'link_category_id')
                                    {
                                        $category = $this->categoryRepository->get($value,$storeId);
                                        if(!empty($category))
                                        {
                                            $url = $category->getUrl();  
                                            $templateData['web_url'] = $url;  
                                        }
                                    }

                                    if ($key == 'link_sku'&&!empty($value)) {
                                        try {
                                            $product = $this->_productRepository->get($value,false,$storeId);
                                        } catch (\Magento\Framework\Exception\NoSuchEntityException $e){
                                            $product = false;
                                        }
                                        if($product)
                                        {
                                            $product_zh = $this->_productRepository->get($value,false,1);
                                            $product_en = $this->_productRepository->get($value,false,2);  
                                            $templateData['product_url'] = $product->getProductUrl();
                                            $templateData['price'] = number_format($product->getFinalPrice(), 2, '.', '');  
                                            if(!empty($product_zh))
                                            {
                                                $templateData['name_zh'] = $product_zh->getName();     
                                            }
                                            if(!empty($product_en))
                                            {
                                                $templateData['name'] = $product_en->getName();   
                                            }
                                        }    
                                    }

                                }
                            } 

                        }
                        if(!empty($mata))
                        {
                            foreach($mata as $k=>$v)
                            {
                                $cata[] = $v;
                            }
                        }
                        $templateData['category_list'] = $cata;

                    }
                    $data[] = $templateData;
                }
            }
            $mata = $this->serializer->serialize($data);
            $this->cache->save($mata, $cacheKey, [], 60);
        }


        $result['ret_code'] = 200;
        $result['data'] = $this->serializer->unserialize($mata);

        return $this->renderResult($result);
    }


    /**
     * @param $result
     * @return mixed
     */
    public function renderResult($result)
    {
        return $this->getObject('Magento\Framework\Json\EncoderInterface')->encode($result);
    }

    /**
     * @param $className
     * @return mixed
     */
    public function getObject($className)
    {
        return \Magento\Framework\App\ObjectManager::getInstance()->get($className);
    }

    /**
     * @param $className
     * @return mixed
     */
    public function createObject($className)
    {
        return \Magento\Framework\App\ObjectManager::getInstance()->create($className);
    }
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
bing8u
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 90

一开始看到__construct,感觉还行啊,没那么不堪啊。

看到三分之一处,这if else 好像有点多?

再往后看下去,沃日哦,这是人看的代码???

3个月前 评论
bing8u (楼主) 3个月前
lyxxxh 3个月前
Ellison 3个月前
xujinhuan 3个月前
bestcyt 3个月前
浅步调 3个月前
blankqwq 3个月前
siess 3个月前
嘿喵财运旺旺 3个月前
kis龍 3个月前
wqx2019 3个月前
bluememory 3个月前
aidoudou 3个月前
struct 3个月前
Yoruchiaki 3个月前
ma1232006 3个月前
Zccc 2个月前
朝东 2个月前
勺颠颠

代码不错,简单低调奢华有内涵,轻奢典雅,简直完美 比那些大佬好多了,个个都是人才,代码又好看,我超喜欢这种代码 :smirk:

3个月前 评论

file

你怕是没挨过微擎的毒打 :joy:

3个月前 评论
❤seven 3个月前
陈怼怼 3个月前
struct 3个月前
Inn (作者) 3个月前
陈怼怼 3个月前
陈怼怼 3个月前
wzg10086 3个月前
avrilko 2个月前
JHWu 2个月前
SF0102_xu 2个月前
stary5 2个月前
骤雨 2个月前
Inn (作者) 2个月前
keer 2个月前
yourNear 2个月前

你为啥要发我写的代码出来!

3个月前 评论
勺颠颠

代码不错,简单低调奢华有内涵,轻奢典雅,简直完美 比那些大佬好多了,个个都是人才,代码又好看,我超喜欢这种代码 :smirk:

3个月前 评论
lyxxxh

我的心情: 大佬啊 -> 震惊 -> 懵逼

3个月前 评论

退了退了,这种代码我都写不出来

3个月前 评论

有一说一,这个还好吧

3个月前 评论
bing8u (楼主) 3个月前
啥时候瘦了啥时候改名 3个月前
bing8u (楼主) 3个月前

一开始看到__construct,感觉还行啊,没那么不堪啊。

看到三分之一处,这if else 好像有点多?

再往后看下去,沃日哦,这是人看的代码???

3个月前 评论
bing8u (楼主) 3个月前
lyxxxh 3个月前
Ellison 3个月前
xujinhuan 3个月前
bestcyt 3个月前
浅步调 3个月前
blankqwq 3个月前
siess 3个月前
嘿喵财运旺旺 3个月前
kis龍 3个月前
wqx2019 3个月前
bluememory 3个月前
aidoudou 3个月前
struct 3个月前
Yoruchiaki 3个月前
ma1232006 3个月前
Zccc 2个月前
朝东 2个月前

虽然不加班,但是两年前13,两年后15还是有点不爽 :joy:

3个月前 评论
bing8u (楼主) 3个月前
xujinhuan 3个月前
cosyphp

目测 getToolsCampaign 这个方法,在 phpStorm 里两屏都看不完。。。

3个月前 评论

只要工资待遇可以,想

3个月前 评论

你为啥要发我写的代码出来!

3个月前 评论

额,一个函数上千行的项目了解一下,最少的也是六七百行的。

3个月前 评论
anniversary 3个月前

两个月前从silk离职。magento代码质量很不错,只是很难驾驭。

3个月前 评论
caiyaonan 3个月前
bing8u (楼主) 3个月前
bing8u (楼主) 3个月前
Marrigan

我之前公司 一个文件也就才 1w行左右吧 :joy:

3个月前 评论

一个中文都没有,写的还不好吗 :joy:

3个月前 评论

前面看着还行啊。。。拉到下面,卧槽,这if,卧槽,怎么还没完,这是套了几层 :+1:

3个月前 评论

看着头疼啊

3个月前 评论

不用加班 双休 这工资是还过得去吧

锻炼下重构能力呗

有时间就学习 有好机会就跳槽

3个月前 评论
bing8u (楼主) 3个月前
laravel_denghy (作者) 3个月前

if,else有点多 :joy:

3个月前 评论

如果不是长期维护的项目,你想怎么写都行,没问题就可以了

3个月前 评论

这if else ,跟我之前的一家有的一拼

3个月前 评论
Epona

其实大部分的公司的代码都这样,没去过BAT等大厂,不过,根据网上的反馈,估计和这种代码差不多。

国内都是注重快速实现(好听的说法😂),而不会管你具体是怎样实现的。只要大环境是这样,代码质量就不可能高的。

3个月前 评论

如此多的代码量,绩效稳了 :smirk:

3个月前 评论

这 if 如果反写也不会这么乱呀,不过这代码重构起来应该非常爽,和清理垃圾似的 :joy:

3个月前 评论
小李世界

一个方法一个功能,我看这个是一个方法一个火箭或航空母舰啊

3个月前 评论
勺颠颠

@小李世界 资本家:能跑就行了,反正明天可以换更年轻,更便宜,更听话的码农过来,反正年轻的也能干

3个月前 评论
黑将军

其实很多非外包公司的代码也没好到哪里去

3个月前 评论

file

你怕是没挨过微擎的毒打 :joy:

3个月前 评论
❤seven 3个月前
陈怼怼 3个月前
struct 3个月前
Inn (作者) 3个月前
陈怼怼 3个月前
陈怼怼 3个月前
wzg10086 3个月前
avrilko 2个月前
JHWu 2个月前
SF0102_xu 2个月前
stary5 2个月前
骤雨 2个月前
Inn (作者) 2个月前
keer 2个月前
yourNear 2个月前

连个注释都没,看着有点慌

3个月前 评论
略懂

我觉得还好 比这个还恶心的代码我都改过。对于我来说只要钱到位。没啥不能做的。你要是接受不了就离职呗 何必为难自己。

3个月前 评论
略懂

而且说好的好像外包就得背锅一样,不是外包的就难道不会写出这种代码?

3个月前 评论
bing8u

@略懂 除了在外包公司,我还真没遇到过,在团队里面,谁要是写出这种代码。 要么走人,要么加班改! :smile:

3个月前 评论
wzhangxuy 2个月前
bing8u

@lawrencepu 大兄弟你也用Laravel,居然能在本社区看到。

今天我去找人事辞职,人事说负责人欣赏我的代码,喊我留下。。。

3个月前 评论
hezhizheng 3个月前
bing8u (作者) (楼主) 3个月前

还行,然后你这不涉及泄密吗???

3个月前 评论
bing8u (楼主) 3个月前
october

说实话,你这个代码 梳理一下,抽象出来一下就行了,不算难改造的,我最近换了一个团队,看完后一脸懵逼 啥都不知道。。

3个月前 评论

小场面,我见过一个方法3000多行,助手函数一万多行

3个月前 评论
bing8u (楼主) 3个月前

卧槽,这是人写的代码吗,这么多if还写这么长的代码

3个月前 评论

成都这个工资还是挺不错 很羡慕 但是这个代码..

3个月前 评论
66

有一说一 其实还好 至少我可以读下来 知道他要干嘛~ :joy:我是有多无聊

3个月前 评论

md,感觉我写的比这个更多。。。。数据库字段不同类型,对应不同输出参数,查cache->没有就查询数据库->生成cache.....

3个月前 评论
❤seven 3个月前
小烦

还行吧,但是我觉得你把别人代码直接丢出来还是不太合适。 截取片段还行,但是文件拉出来,不太合适。 然后代码质量还是要结合业务需求来看更客观一点 比如你写了部分逻辑,突然产品要加需求,你难道全部推倒重写么?那累加业务逻辑的话这种还是很正常。

3个月前 评论
bing8u (楼主) 3个月前
dinghua 3个月前
小烦 (作者) 3个月前
小烦 (作者) 3个月前

变量命名风格不一致,初始化数组有用array() 也有[] if嵌套这么多,没有switch 或者return 吗?

3个月前 评论

不谈工期 就说代码要优雅 简洁 就是耍流氓 :smiley:

3个月前 评论
Leesinyii 3个月前

file

给你看看360的代码

3个月前 评论

cache 的 key 用 ":" 连接会好点 :grin:

3个月前 评论
自由与温暖是遥不可及的梦想

看到你的构造函数 感觉 还不错

看到你的 函数体

我觉得 你不适合去那种 低耦合高内聚代码风格的 公司

3个月前 评论
bing8u (楼主) 3个月前

老铁你可以给他重构一下! :grin:

3个月前 评论
bing8u (楼主) 3个月前
Leesinyii 3个月前

看到一堆if, 是switch上不了台面嘛?

3个月前 评论
bing8u (楼主) 3个月前

刚开始还好,越拉越害怕

3个月前 评论

我这个菜逼都写不出来这种代码

3个月前 评论

愤怒的小野驴 被程序员耽误的段子手 435 人赞同了该回答 刚入职的时候,熟悉项目代码,经常碰到各种奇形怪状的代码,有且不限于:各种进不去的分支,各种奇葩逻辑,各种风格不统一的编码风格,各种我也形容不上来但是看着很蛋疼的代码。。。每当问起老员工这里为什么这样实现时,他都会漏出一副深邃的表情:别问我,我来时就这样了,历史遗留问题。。。 至于如何对待,我举个例子。我们代码中有一行代码,在一个奇奇怪怪的地方设了个奇奇怪怪的标志量,然后后面一个注释: // 位置不能动,不然时序就都乱了。 作为一个萌新我当然乖乖滴没去动它,直到有一期新需求,这个标志量的位置出现了点小问题,然后我就尝试性地把这句话往后挪了一小下,然后程序从头错到脚指甲。在体会到前辈的用心良苦后,我又在那个注释下面加了一句:经验证,真的不能动。。。 发布于 2017-10-09

3个月前 评论

外包吗,这样写代码,一方面为了快,一方面为了不可替代,多收点费用,好多自己的项目,如果没有代码review,好多人也会这样应付了事,当你的代码别人看不懂时,就有了不可替代性,也算是为了保住饭碗的一种手段,有一说一,我二开过一个ecshop2.7,还是在别人二开的基础上二开的,恶心的要死,一个方法也就9600行吧

3个月前 评论
bing8u (楼主) 3个月前
Leesinyii 3个月前

还好吧,命名还算规矩,逻辑也能看清楚,边界条件也考虑到了,也没有用拼音、缩写。重构下也不难,IDE折叠一下也干干净净。只能说你没见过更差的。

3个月前 评论

:grin: 对某些来说:又不是不能用

3个月前 评论

Silksoftwarecorp 暴露公司了吧,小心被查水表

3个月前 评论
bing8u (楼主) 3个月前

我在手机上看,看着看着就一堆大括号出来了😂

3个月前 评论

至少还有注释。哈哈 请问这个公司在哪里。我想去面试

3个月前 评论

这公司在哪?求内推……

3个月前 评论

哈哈哈 看着有点头疼 但是是为了生活啊

3个月前 评论
命中水

我新进公司,有个需求调整个地方。我去找了一下,一个方法1800多行。。。然后我找到写代码那个人。让他给我弄了

说真的,这么长的代码块,不是当事人写的,真的一点儿也看不懂,要想看懂,没有一下午或者一天时间是不行的。

3个月前 评论

感觉也没那么糟糕啊 也就if多了点。。。

3个月前 评论

刚从移动的外包公司出来,其实也就做了三天,工资在我们这种小城市还算不错,就是代码惨不忍睹,实在看不下去,而且加班起来都是要通宵那种,实在没法待,不过外包公司业务比较杂,换一个层面说,短期还是可以锻炼人,不宜久待~

3个月前 评论

@Derek 外包公司业务确实比较杂,逻辑多,从这点上面说,可以提升自己

3个月前 评论

我也是外包公司的,以前的时候还挺反感这些的,但是真正到你接触外包,你就会明白这些都不算什么,之前看到这种代码,直接就像骂人,不过自己做的久了,除了尽量做到代码简洁之外,别无他法,而且外包公司的代码真心不是一开始就是这样子的,一般都是因为客户的频繁变动,不断适应各种场景,为了提高效益,能够卖给更多的人,一般就会采取这种措施,if else 是最廉价,可能也是最先有系统影响最小的一种做法,环境如此,不得不为之。不过这种代码写多了,啥代码都感觉还可以接受,哈哈哈

3个月前 评论
bing8u (楼主) 3个月前
Leesinyii (作者) 3个月前

那几段连着的 if 啥意思确实没懂,不过有点眼熟,因为之前见过同事(非外包)写过更奇葩的,人家会查数据,通过查到的数据里边字段去查另一个表,查到另一个表之后,通过里边的字段再反查最初的数据,当时是真的惊呆了

3个月前 评论

我觉得这种标题没有意义 例子都举了 不贴你优化方案 哪里不合理 你怎么解决的优雅? 吐槽别人的代码是程序员的通性

3个月前 评论
bing8u (楼主) 3个月前

维护成本太高了

3个月前 评论
WytheHuang

基操, 我公司代码更乱更长,注释还是错的,不敢大改,一个类6000多行。

3个月前 评论

哎,看这种代码很头大,各种判断又不拆分,烦得很。

3个月前 评论

黑猫白猫 能抓老鼠就是好猫 抓老鼠动作优雅些美观些有啥用 老板就要赚钱这个结果 :joy:

3个月前 评论

你这个真的挺好了,我之前在某大厂正式员工,那代码才叫难维护,主要是开发周期长,10年左右开发到现在的,一直没重构,全部用的原生,一个接口就是一个文件,有的文件几千行,大量的if, elseif,里面html,js啥都有,很多文件都是复制粘贴一遍,很多文件里有相同的方法啥的,缝缝补补的,有的还提炼出一些方法,而且很多个项目都混在一起,你要去了我估计你直接就跑路了

3个月前 评论

我想应该把 关注点 放到 自己适不适应这种工作,而不是代码本身

3个月前 评论

写代码的人呢,我要打死他

3个月前 评论
Krisji

知足吧,兄弟,996的生活你没接触过

3个月前 评论

这种代码写起来很舒服,一股脑写到底,思维不会被打断,别人维护另说

3个月前 评论

一个函数超过100行的都得优化....

2个月前 评论
wanzi 2个月前
小李世界 2个月前

这样的注释有没有都一样

file

2个月前 评论

18年入职了现在这家公司,虽然不是外包,但是一入职也是各种卧槽。后面慢慢改革,定规则,数据库重新设计等等等等,这里可以省略好几万字。

现在呢,因为我们现在扁平化管理,规则已经慢慢被打破了,原本慢慢想接近优雅的,但是现在又要离优雅慢慢远去了。

最近要搞绩效考核了,目前只能管好自己的代码,不被玷污了。

2个月前 评论

你这个代码最多就是长,看着难受,但是理好之后还是能改的,给你看看一段短小精悍,但是你动都不敢动的代码:

<?php
namespace app\common\model;
use think\Model;

class ArticleCollect extends Model
{
    // 指定表名,不含前缀
    protected $name = 'article_collect';

    public function getUserIdAttr($value){
        if($value == 0){
            return '';
        }
        $result = \app\common\model\Users::where('id',$value)->column('name');
        if(!isset($result['0'])){
            $result['0'] = '用户不存在或已经删除';
        }
        return $result['0'];
    }
    public function getParentIdAttr($value){
        if($value == 0){
            return '';
        }
        $result = \app\common\model\Users::where('id',$value)->column('name');
        if(!isset($result['0'])){
            $result['0'] = '用户不存在或已经删除';
        }
        return $result['0'];
    }
}

模型里面全部的类似 xxxx_id 这样的外键,全部被重写了,返回关联模型的名称;也就是说,这样的情况下所有的关联关系都无法定义(因为像 $user->user_id 这样返回的不是用户id,而是用户名称等),假如你想要取 user_id, 那么只能 $this->getAttributes('user_id') 这样来取,最主要的是整个项目都用 user_id 这个字段来显示名称,所以无法重构。。。

2个月前 评论
crackfan 2个月前
大张 (作者) 2个月前

这个if嵌套的不像话,看完要累死个人哦,开发者的姨夫可真多

2个月前 评论

有一说一,竟然用上了命名空间,可以

2个月前 评论
$result = array();
$data = [];

看到这个 array() 我一般都会顺手把它改掉,不知道这种是不是强迫症!

2个月前 评论
小李世界 2个月前
OverNaive 2个月前
crackfan 2个月前

感受痛楚吧,一袋米呦抗几楼,一袋米呦抗二楼,一袋米呦给多嘞,神罗天征

2个月前 评论

放弃吧 :smirk:,这代码没救了,重写吧

2个月前 评论
小李世界 2个月前
crackfan 2个月前
Code_Er

太多if了 根本不想看 但是我以我混小公司的经验来说很多代码都差不多的兄弟

2个月前 评论

粗略看了一遍,看到这种 if xxx {无限行数。。。。 if {无限行数。。。}} , 说实话,感觉很可怕。 算了,我还是别看了,免得辣眼睛。

2个月前 评论

祖传的代码,不要改~

2个月前 评论
Route::post('teacher/edit', '/admin/teacher/edit');

我同事定义的路由,这个路由的作用是获取某一个老师详情的

2个月前 评论
小木 2个月前
xiaosheng (作者) 2个月前
小木 2个月前

板砖已在手,一个方法写了二里地不说,连个路标都没有。

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!